Gratuities have nothing to do with any compensation IF anything should happen that would demand such payment. Don't know who told you that, but it's obvious they have no idea what they're talking about.
Besides, first of all, problems don't happen all that often where any compensation is justified. And if major problems do arise, while sometimes they may offer a small amount while onboard, it's usually not that much. If the problem is major enough to warrant some type of compensation, it's usually not going to be decided until well after the cruise is over. And that's why it's always best to have a good agent working for you - they have contact information not available to you. Plus, they represent you, whereas if you book directly through the cruise line, who do you think they represent?
The good thing about pre-paying the gratuities is that it's out of the way and you don't have to worry about them later.
However, should you encounter service that is not up to your expectations, then it makes it more difficult to provide a refund. Whereas if you pay for them while onboard, you can request they not be charged to your onboard account and you don't have to pay for them.
With all that said, the majority of the time the service will meet your expectations and you'll have a wonderful cruise. Very seldom do people encounter any problems and even more seldom is the chance any of those problems become a big deal.