Most local businesses do not benefit. Cruise lines set up their own businesses - jet ski tours, snorkel boats, bus tours, ECT. Those cruise owned businesses are sold on the ship, the non cruise owned have to pay a percentage of their sales to the cruise ship to be advertised. Now all the cruise lines have private islands, there are no local bars and restaurants, no local fishing charters, just a few locals working low paying jobs.
We do enjoy cruises, they really do make for a nice vacation. How do I justify the conflict inside me about how they affect local businesses and treat their employees? I tip really well, I tip early. When the bar is 4 people deep and you see the bartender hand me a beer over your head, it's cause he got $20 cash yesterday, and the day before. We go to Atlantis later this month. I will be tipping heavy, you never know if the cab driver has family that is now living under a tarp. An extra $20 can really help some people.
I've done a few excursions. I wish they were run by DCL. The one on St. Thomas was a joke.