The say there is no free lunch, but sometimes that's down to semantics. We often arrange team days for our teams together with customer including lunch a d sometimes even dinner.
As a team member that's pretty close to free meal as it gets. Sure you are required to show up, but mostly it's an extra thank you for doing your job. There is no other expectations from the regular team members in these events.
I'm also often invited to these gatherings, even if I'm not really a member of the team anymore. It's more of a show of appreciation towards the customer that our higher ups also meets the customers. It's also a great opportunity to discuss the customers future plans and chance to upsell them some new work.
Those responsibilities are pretty much listed in my job description. So whereas regular team members just participate to the lunch as a reward, being there for me is pretty much doing my job. Even though there are expectations from me when invited to join in this kind of events I'd still consider it as a free lunch for me as well.