I recommend Indio Feliz. Very nice owners. It has the atmosphere of a French bistro. Many other restaurants in town set up buffet-style lunches during midday for the tour groups. You can certainly eat there if you're not part of a tour, but you'll get a much more memorable meal at Indio Feliz.
The food concession just outside the entrance of the ruins itself is operated by the Sanctuary Lodge. It's expensive for what you get. You can also go inside the lodge for its midday lunch, but it's expensive and touristy. Stick with Indio Feliz in town.