Its hard graft working on a cruise ship. Seriously, the restaurant staff and housekeeping staff work ridiculous amounts of hours (14-18 a day), with no days off. They can work for months at a time - last cruise I went on, our server was working 6 months on, with 2 months off. She was onboard over Christmas (we cruised August) missing her children.
It tends to be workers from (I'm not sure what is the most politically correct way of saying this, so apologies if this offends, its really not meant to) less developed countries. There were an awful lot of staff from the Phillipines on our cruise for example. They work these jobs because they can't get anything like that in their own country, so send all their money, but sacrifice an awful lot to do that. Our server uses the money she earns to put her children through school.
Those in tipped positions are given a ridiculous salary, something like $50 per month. Everything else they make is based on receiving tips. The cruise companies get away with this because most of them register the ships in places like the Bahamas, so they're not subject to things like paying their staff minimum wage.
Yes its wrong, but the cruise companies are never going to change, as they would have to put their prices up and don't want to do that. So those people who remove their tips to "make a stand" aren't doing anything except ripping off the staff who have worked their nuts off all week. I don't agree with it, and am not a big fan of tipping, hate the tipping culture in the USA for example. However, after going on four cruises, seeing just how hard the staff work and never complain, and also doing my own research about it, I would never drop the tips unless something had gone badly wrong (I did reduce the tip of a server on my first cruise, as he was awful, but I left feedback as to why). If I can afford to go on a cruise, I can afford to pay $12 in tips per day, which is what the cruise line I go on charges.