I do feel bad for everyone who would lose their jobs but I agree OP. The environmental costs are huge and the damage they do in the places they stop is sometimes really staggering. People in Venice have been organising against them for years. Montenegro has become a popular port for cruises but it's destroying the coastline, it's not sustainable.
I imagine there is some way to create a sort of 'eco-cruise' experience, with smaller ships, cleaner fuels, more restrictions on docking?
The cruise ship companies are also ridiculous, they are complaining about not getting any relief money in the US after registering offshore all these years. And some of them exploit their employees horribly.