Потому, что по правилам русского языка, когда говорят про населенный пункт и добавляют обозначение пункта, например, город, посёлок, деревня, то наименование населенного пункта произносится в именительном падеже, склоняется только город, поселок, деревня. Как то, город Москва, в городЕ Москва, у городА Москва, деревня Малаховка, в деревне Малаховка, у деревни Малаховка. Если обозначение населенного пункта не употребляется, то склоняется само название. В Москве, у Москвы, под Москвой. В Малаховка, у Малаховки, под Малаховкой.