As @Carlo_R commented, yes: the sentence is grammatical. However, correct grammar does not necessarily produce correct meaning.
If you want to allow customers to find the best restaurants that serve a given food item, you should state it just like that: "...the best restaurants that serve..." The way you have it written right now, the restaurant may be average or poor, and the service in general may be average or poor, but the restaurant at some point served the food in question in the best fashion. Depending on where you put the word "best", it modifies different parts of the sentence and makes the focus of your search different. Are you looking for:
- The best restaurant?
- the best food item?
- the best service?
Also, your use of the past-tense "has served" indicates that we are talking about some event that is now complete, rather than a current quality of the restaurant or food or service.
I would suggest that you go with the sentence that you used to explain your intent, with minor modifications:
The system shall allow customers to find the best restaurants that serve a given food item.
This puts the focus on the overall quality of the restaurant and implies that the entire dining experience will be excellent: friendly service, prompt attention, tasty food, etc.