Самый правильный и единственный ответ - так сложилось. И это относится не только к Москве и Петербургу, но и к другим городам, чаще всего говорят о этих двух городах, только потому, что они самые населённые и вообще столицы. Например в Краснодарском крае есть синенькие (баклажаны), рыготать (смеяться), в Самаре сезонка (проездной), В Перми упеткаться (утомиться), в Новосибирске толченка (картофельное пюре) и так далее.
Одна из главных причин относительно различий речи в Москве и Петербурге - это различие в истории развития этих городов. Москва постепенно выросла из деревни, а Петербург появился хоть и не на совсем пустом месте, но был создан искусственно, причем в период крупнейших реформ в стране, тут скапливались большое количество специалистов, ученых, в том числе в большом количестве из за рубежа. В москве речь всегда была более разговорной, тогда как в Петербурге более литературной.
Откуда человек узнаёт слова, когда только учится говорить? Конечно от своего окружения, от родителей, которые в свою очередь узнали от своих. И несмотря на то, что многие переезжают, общаются с жителями других городов, большинство всё же "варится" в окружении "местных", особенно в детстве. Вот и получается, что в одном городе вещь называют традиционно так, а в другом иначе.
Ну и белый хлеб и булка - это разные вещи :).