Individual restaurants often run their own websites. Plenty of those offer a phone number for you to call them through, and they frequently encourage you to do so because it saves them on order fees typically accrued by Yelp, GrubHub, Seamless, or any other order system.
In order for that site to show up first in a Google search, they need to be better at SEO than, say, Seamless. This might not be a super hard problem in general, but if you're running your own restaurant, the cost of building and maintaining a website with good SEO can be relatively high. Seamless, on the other hand, does nothing but focus on problem areas like building SEO-optimal landing pages for restaurants. Plus, they just have to figure out a good SEO strategy once in order to be able to apply it broadly (and they aren't themselves busy cooking food, prepping orders, and waiting tables).
In general, restaurant websites appear higher than their online ordered alternatives, but what's to stop Seamless (for example) from winning the SEO race against a non-trivial chunk of small restaurant websites? This would mean that there are plenty of cases in which you search for a restaurant and end up on Seamless, even though that's not the "right" search result.
I don't really have any answers here, but I'd love to know if there's anything in place to prevent situations like this, or if I'm ignorant about how SEO works.