There are several cafes at the end of Rainbow Beach Road in the main shopping area, which are usually open for breakfast and lunch, but not usually dinner.
There's a Surf Club which does food and drinks, with a view over the beach, and a hotel. The tennis club on Double Island Drive does food too.
Near the entrance to the town is also a very nice seafood restaurant and takeaway, which serves a variety of local fish dishes.
Further afield, the Yacht Club in Tin Can Bay has lovely views over the bay, and does fairly nice lunches and dinners.