This is an example of a common thing that people trip over in English. The simple subject of the sentence is not "town and city", which would be plural because there are two of them. The simple subject is "every", which is singular.
"Every" is a bit of a funny word in that way. Even though we use it when talking about many things, it is considered singular, because we are only talking about one of them at a time.
Suppose we said, "Every town has areas like this." Then I think it would be more apparent that the verb should be the singular "has".
If you said, "Towns and cities have areas like this", without the every, then the subject is plural and so you need the plural verb. Or if you said "All towns and cities ..." Again, then it's plural.