That's a bit unfair, when you fly somehwere you sleep there, you eat there, you spend there. Whereas on a cruise ship the tourist is spending 99% of their money on the ship, and 1% in the city that they're flooding
Not true. Cruise passengers practically run the economy of many cities around the world including US. For example, a lot of towns in Alaska basically live off of cruise ship docking there. If they stop, many of them flat out collapse. I don't have actual data but my anecdata from several cruise ship regulars is that they spend at least as much on "excursions" and touring the ports as on cruise ship ticket.