It’s not only about Google, this happens will all major search engines. The reason is they personalize the search results. Personalization takes into consideration the geographical locations of the users, previous websites visited by those users, user behaviour on those websites, keywords they search and many more factors; in a few words – how they navigate the web. Based on this information, the search engine shows different websites or different ranking according to how likely is the user to click on the links displayed.
It’s not a secret Google knows a lot about us, as users. Of course, is has its own data when we search, what we search and how we search. The Google Analytics tracking codes installed on the majority of websites also send user information to Google. Therefore search results personalization is at its hand.
Imagine two individuals searching for “banks near me” while they are in different cities; or searching for “restaurants near me” while they are only 3-4 miles away. The results will differ more (in the first case) or less (in the second one) but they will be different. Imagine now two people searching for “handyman in London” while they live on the same street. The search results may still be different depending on what handyman websites they previously visited and how they interacted with those websites. Even when you search for product types, product names, brand names or people results will be different one user from another.