Is there any legal way to search and download google maps POI information, based on user location and search radius (50 km) + search criteria (eg restaurant) ?
Output would ideally be KML or CSV.
No. I am unaware of any legal way to bulk download Google's POI database. Many alternates exists including free options such as OSM and purchase options such as HERE. A simple web search will reveal many more.
Now, although you cannot download Google's POIs in a traditional manner the Google Places API will give you access to over 100 million Google POIs or places. This API allows such functionality as search nearby, search within a radius, and search for a type such as restaurant and so it meets most of your requirements as stated in the question aside from a traditional batch download.