I'm not a fan of the "lunch and learn".
It feels like a cheap attempt to steal from your team. That free time in the middle of the day gives them a chance to think about something besides the code they've struggled with all morning. Lunch is a time to step away, to refresh.
A meeting to "learn" about work-related topics should be done during work time. It's a knowledge transfer meeting and a cost of doing business.
Don't get me started about companies that make you attend a lunch and learn *and* bring your own food.