The pair announced the tie-up on Thursday, which sees BA joining the no-frills airline model of charging passengers for food and drink.
From January, BA will charge £4.75 ($6.2, 5.5 euros) for a tomato and mozzarella focaccia, £1 for hand cooked. No food item will cost more than £5.
BA said the move “follows extensive customer research and feedback, which highlighted dissatisfaction with the airline’s current short-haul economy catering”.
But customer Lee Butterley tweeted: “Hey @British_Airways literally no reason to pick you over EasyJet and Ryanair anymore then?”
James Forshaw added: “Wow @British_Airways taking away the free food is one thing, but drinks, even soft ones? Really is no reason to fly BA short haul anymore.”
Others welcomed the move, with Jan Brian tweeting: “At last, the chance for some decent food on flights. Don’t mess it up!”
BA chairman and CEO Alex Cruz described the tie-up with Marks as “an ideal partnership, providing… customers with a choice of products they recognise and value”.