These are common in many languages.
Even in England: Weston-super-Mare is just latin for "Weston by (literally "over") the sea".
And constructs like "Stratford-upon-Avon" (to disambiguate from other Stratfords) are pretty common in most places; consider "Frankfurt am Main" and "Frankfurt an der Oder" all of which specify that their town is the one on this specific river.
Also a lot of those European place names (ignoring the prepositional affixes) are themselves compounds of other nice properties.
I don't know why this construct is uncommon in the USA.