For what we could clearly define as a product, "rates" just doesn't work for me. I really favour "prices" in both your examples. "Ticket prices" is a perfect collocation as are "restaurant prices". I think if you receive a physical item in return for money, we have to describe what you paid as the "price". (I appreciate that the restaurant example is a bit more complex, since there is also a service along with the food). If you are buying a service, "rates" seems to be the preferred option, since we are often not buying a single thing, but rather somebody's time or ongoing service.
That plumber's rates are way higher than the other one.
Prices would sound a bit clunky in this example.
A good lawyer should still charge a fair rate.
Another example of a service.
I also think that "prices" can be used reasonably well across all the examples in my answer and your question, leading us to think that "prices" works fairly well globally, whilst "rates" is somewhat restricted to services.
"Charge" works best as a verb.
Can you believe they charged me twice for their inadequate service?!
When used as a noun, it is used to describe "being asked for money", such as on a bank statement, or when handed a receipt. For example, if a customer in a restaurant had not eaten a green salad, they may question an erroneous item on their bill/receipt like so:
Excuse me, there is a charge here for a green salad which none of us ordered.
You certainly couldn't use "price" or "rate" in my last example.