The point of tipping is to prevent the employer from having to pay a fair wage. Someone who works in such industries depend on tips for their livelihoods. Not performing at 100% resulting in a significant drop in earnings isn't really fair.
Given the typical audience on here, a reasonable comparison would be for employers to be docking wages based on time spent not working. Given how many of us visit this site at work, that could be a substantial drop in wages.
Then again, you might be making so much money that it doesn't impact you. Servers aren't. They might just be having a bad day. Their mistakes on serving you will have less of an impact on your life than your not tipping them.
Most of them are human beings trying to survive. Most of them are not making enough to do more than that.