Why is my smartphone showing the wrong city for incoming calls?

The phone number system we are all familiar with was unified under the North American Numbering Plan (NANP) in 1940s, with the following format:

(NPA) NXX-####

The NPA is the area code, for large geographic regions (eg. counties) and the NXX is the Central office code, which is tied to a smaller geographic area (eg. cities).

Numbers have been assigned to cities long before cell phones and VoIP systems.

Cell phone apps do not display CNAMs, they only display a name if it is in the address book on the local device. If there is no entry for an incoming number, it then pulls whatever the carrier dictates, and carriers have generally decided to use the NANP, because it was already there. We do not have control over the carrier, the app running on the phone, or the NA.