To that point people who complain are often the canary in the coal mine for larger issues. I am a big complainer. Typically in the end I get thanked for bringing things to a businesses attention. And I am a good customer. My largest 'reward' to date was a $5000 amount from a large german car manufacturer. They said 'we have never done this before'. What I said started out as a complaint. At first they were not really responsive. I finally brought home (successfully) that I was doing them a favor and that their dealer (a luxury car dealer) did not handle things the way they should have with a recent transaction.
I complain all the time at Whole Foods (where I spend a ton of money). Things just jump out at me. That said not everyone is me. Will say that I have owned a small business in the past. For every person that voiced a complaint there could be a hundred who don't open their mouth honestly. That's what I have found.
People think they shouldn't complain in a restaurant as another example. No the restaurant would rather have the complaint than you not returning or telling others. It's their chance to make things right and buy loyalty. Same story 'thank you for bringing this to our attention here is a $100 gift certificate'.