It is not completely correct, but people still use it sometimes in everyday speech. The thing about this is that "the expensive meal" is an indirect object. The direct object is hidden, and implied here, but it is the restaurant or person who served you. So this is why you need for in there. If "the expensive meal" was the direct object, you would be giving money to the meal itself, and I'm pretty sure that makes no sense in any language.
Who pays [the restaurant] for the expensive meal?
So basically, whenever it is something that can receive money (a person, an atm), you don't use for. But whenever it is something else, that you use money to buy, you use for.
Hope that helped! :D
It just feels very unnatural to say in English in my opinion. Think of the following sentences, and then you'll see why it just sounds unnatural (in different contexts):
"Who pays the expensive car?"
"Who sells the umbrella?"
"Who jumps the fence?"
In order for any of the sentences to make any sense, I feel like it has to be the following:
- "Who pays for the expensive car?" / "Who is paying for the expensive car?"
But you can say for example:
"Who's paying for the expensive car?"
"Who's selling the umbrella?"
"Who's jumping the fence?"
As Who's is a contraction of Who is :)
I hope this post makes sense :)