My recollection from a number of years ago was that Springdale, the town right outside the entrance to Zion, had several nice places. Unlike many touristy towns at the entrance to a National Park, this one was pleasant with good eating options. Unfortunately, it's too long ago to recollect anything specific. This is a great place called Hells Backbone Grill in Boulder, Utah, but that's about 150 miles away (a gorgeous drive) and would be an overnight trip).