Почему при попытке спарсить заведения из Google Maps, beautifulsoup4 не может сарсить объект и выдет ему значение None?
Потому что интересующие вас элементы генерируются javascript'ом на фронте, а BeautifulSoup выполнять JS не умеет.
Google Maps работают на JS, BeautifulSoup не умеет извлекать данные из JS кода.  Чтобы извлечь данные оттуда, вам нужно использовать Selenium, или извлекать данные из inline-js кода.

Чтобы это сделать, вам необходимо достучаться до window.APP_INITIALIZATION_STATE c помощью регулярного выражения. Там вы найдете все необходимые данные:

Как альтернативный вариант, вы можете использовать стороннее решение Google Maps API от SerpApi. Это платная API с триалкой и лимитом в 5,000 поисковых запросов. 

Пример использования SerpApi и Python + Google Maps Place Results API:

import os, json
from serpapi import GoogleSearch

params = {
  "engine": "google_maps",
  "type": "place",
  "google_domain": "google.com",
  "q": "Coffee",
  "ll": "@55.7817589,37.3439227,11z",
  "data":"!3m1!4b1!4m5!3m4!1s0x46b54a6a2d1fa48b:0x48626c54fae83fbd!8m2!3d55.7699605!4d37.6207588",
  "api_key": os.getenv("API_KEY"),
}

search = GoogleSearch(params)
results = search.get_dict()

print(json.dumps(results['place_results'], indent=2, ensure_ascii=False))
JSON output:
...
[
  {
    "title": "Black Star Burger",
    "rating": 4.2,
    "reviews": 5201,
    "price": "$$"
  }
]
...

Я работаю на SerpApi.