Tipping is a system in which customers explicitly, optionally, and variably share some of the cost of labor. It has the features of allowing individual patrons to modulate the labor subsidy they provide, based on their current price sensitivity, the value they place on warm fuzzies (don't dismiss this!), the relationship they want to build with the business, and the service they perceive themselves to be getting.
You can't do all these things with prices; prices apply universally across customers, and for the most part in the hospitality industry they can't float (see airline tickets as an example of a floating price, and the sheer loathing it creates in the customer base).
Later
I also should have added, and probably led with, the fact that tipping addresses a big agent-principal problem in hospitality: in restaurants where servers rely on tips, their incentives are strongly aligned with those of customers; without tips, virtually all the incentives are aligned with that of management.
You can't do all these things with prices; prices apply universally across customers, and for the most part in the hospitality industry they can't float (see airline tickets as an example of a floating price, and the sheer loathing it creates in the customer base).
Later
I also should have added, and probably led with, the fact that tipping addresses a big agent-principal problem in hospitality: in restaurants where servers rely on tips, their incentives are strongly aligned with those of customers; without tips, virtually all the incentives are aligned with that of management.