The answer to the riddle is a map.
Here’s why:
Cities, but no houses: Maps represent cities with symbols or names, but they don’t show individual houses.
Mountains, but no trees: Maps depict mountains as landforms, but they don’t include the actual trees that might grow on them.
Water, but no fish: Maps show bodies of water like rivers and oceans, but they don’t contain fish.
According to medium.com, this riddle plays on the difference between a representation and reality, with a map being a representation of the real world.

Yes you are right. Thanks for your participation.