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.
Thank you for your interest in this question.
Because it has attracted low-quality or spam answers that had to be removed, posting an answer now requires 10 reputation on this site (the association bonus does not count).
Would you like to answer one of these unanswered questions instead?