Gründe für dieses Verhalten kann es mehrere geben. Ich bin kein Firebird-Spezi, aber ein paar Dinge sollten vielleicht mal geprüft werden. Meistens ist ein "OR" für eine
DB nicht optimal. Das gilt auch für andere Bedingungen. ">=" ist z.B. besser zu verarbeiten als ">", wenn ein Index auf dem Feld liegt.
Vergleiche die Geschwindigkeit für beide Städte getrennt. Falls dort ein auffälliger Unterschied ist, kann auch eine unterschiedliche Spracheinstellung zwischen Client und Server die Ursache sein (München enthält deutsches Sonderzeichen).
Die Reihenfolge der Bedingungen kann eine Rolle spielen. Einfach mal ausprobieren, ob es was in diesem Fall bringt, diese zu verändern.
Eine Abfrage mit "IN", wie weiter oben schon beschrieben ist manchmal besser zu verarbeiten, als ein "OR".
Manchmal sind 2 Abfragen mit einem "UNION" schneller.
Auf jeden Fall sollte man den Analyse-Plan anschauen. Der gibt schon eine Menge Hinweise, wo die Abfrage ausgebremst wird.