Unfortunately it is the mentality of some passengers who think that they are "pulling a fast one" on the cruise line by not tipping -- not a question of being able to afford it. These are the same passengers who will return home and brag about not tipping!
I certainly agree with you about reporting poor service as soon as it happens to the right person on board. Why should it make your cruise miserable? You waited a long time for the voyage why not enjoy it! But, sadly there is always that minority that will complain about everything as justification for not tipping.