Corkage is what restaurants charge if you choose to bring your own wine to the dinner. Not all restaurants do it. It also does not make sense for every restaurant to start offering customers the option of bringing their own wine and charging corkage.
The answer to the question starts with the customer and their needs. Built into that is the opportunity cost.
Customers may choose to bring their own wine for different reasons
- They do not like the premium charged per bottle over what they pay at a wine store
- They do not like the wine selection and prefer to have their own
- It was a special occasion and decide to bring a special (expensive) wine (and did not want to pay the markup by buying at the restaurant)
First note that the corkage is a flat fee regardless of the bottle you bring.
For the first set of customers, price is the deciding factor. By charging a fee restaurants take away the arbitrage with cheaper wines, making customers either buy their wine or none at all.
For the second and third set of customers, customers perceive higher value in consuming their wine. Restaurants add value by enabling it. So they get their fair share by charging corkage.
Majority of customers would fall in first set if there was no corkage fee. That is an opportunity cost for restaurants. It makes sense to take away the arbitrage with a corkage fee.
And for those that do want to bring their own wine for other reasons, it is only fair to get a share of the value added.
There you have it. Corkage is actually a type of price discrimination.