I'm with the OP...I'd feel a little bit used (or something) too.
If I'm in an office and I know someone is running a marathon, sure, I'll express my good wishes to them. But that type of thing is, to me, more water-cooler talk. Something to pass the time on a break. That's one level. But then there are those people who take it a step further, carve some time out of their weekend, and drive to somewhere near the course, walk to the course, stand there for a while and cheer. That's a bit more of an investment than a few quick 'good luck' comments via email or in the workplace. I think the OP genuinely values that extra effort that the course-cheering people are expending for her, and she wants to thank those people by taking them out to dinner. Nothing wrong with that.
So when someone misinterprets her thank you dinner, I can see why she'd be bothered, no matter if the person has a legitimate excuse of work or not. Who knows, maybe some of the cheering contingent had to work too, but they switched shifts to be there for the OP. It doesn't make the other friend wrong for not doing so, but I can see why the OP wants to thank those that did.
I like the analogy about buying pizza when people help you move. If people are at the event, helping in some way, then they get the pizza as a thank you. If someone said that she couldn't be there for the move but said 'oh, you can get moving boxes from XYZ company. Good Luck!', I wouldn't expect them to partake in the pizza. Sure, they offered verbal wishes and maybe even some form of assistance with the box vendor, but it was really nothing more than small talk.
I like LifeOnPluto's solution. If the friend comes and still tries to get her meal paid for, well, then there's probably not much the OP can do about it then.