There is a hack out there that stops this from happening or at least reduces the behaviour. I can't remember who made it, I'm thinking Two Jeffs. It essentially stops sims from grabbing a plate that is flagged "in use".
This happened to me, too, at the vacation restaurants. My sims just ended up ordering room service for all their meals because they could never eat the food they ordered in restaurants. I'll look around for that hack for you - I want it too, because I'm about to send some sims on vacation and I want them to be able to eat out. Happens the most in vacation hoods for some reason, not in Downtown or regular hood restaurants. It's puzzling and frustrating. Vacations are expensive enough as it is, without having to pay for food that gets stolen!
Edit: it's actually a Dizzy hack, which you can find at the Laden Swallow. It's part of the multi-hack-pack and the one you're looking for is food-busy-fix.
http://www.nectere.net/smf/index.php?PHPSESSID=4e5659d35589f1f2860e2144ab328a3e&topic=1140.0 Get the pack for your newest EP in terms of release order. I know it says in the description that it stops sims from food snatching when your sim opens the fridge but I'm pretty sure it stops the restaurant food thieves as well.