The underlying thing is that they are the few sites that are doing it, so in the absence of a better option, Google shows these sites instead. Think of ehow.com or ask.com, they don't provide a great experience to the user, but you will notice on those types of searches, there are not any better options out there.
When I say dynamic, I don't mean it as it is created on the fly. The URL has parameters that the server sees and knows to fetch the corresponding city from the server. I am not 100% positive, but from past experience I am willing to bet there is some kind of auto-fill tag like %CITY% that the server will plug in the city from the URL parameter. The rest of the copy never changes
Example: http://www.travelsite.com/flights-from-boston-to-new-york-bos-to-lga
Copy on page: blah blah blah Boston to New York blah blah blah. If you were to change either of the cities the copy would remain the same but the city would update.
Crawlers will crawl the page after it has loaded, so as long as the "dynamic" content is loaded prior to that the crawler doesn't know any different.
If my memory serves pages only need to be 5-10% different in copy to not be counted as duplicate content. So if your title, H1 and a few words in the sentence and some links are different that just about does it.
Now this doesn't make it a great user experience and as StreamMarket stated below, eventually Google will take notice of this and will move them down in ranking. Of course, this also means that other sites (Airlines) need to do a better job at creating pages like this but are user focused and not search engine focused.