I clicked the pointer and allowed OSM to know my location and it correctly went to the right place.
But then I wrote “bike shop” in the search box and pressed “go” and it listed a load of places in other countries not near where I am. Whereas if I do the same in Google Maps it works.
The regular search function on osm.org does not offer a search for “categories” but only searches directly in the name of the object. You would have to use other tools for this.
Yes. Our search engine, Nominatim, understands a few special phrases so
you can search for e.g. “restaurants in berlin” but you cannot search
for “bike shops in berlin” because “bike shop” is not in the list at https://wiki.openstreetmap.org/wiki/Nominatim/Special_Phrases/EN
Searching only in the current bounding box is possible but you need to
go to Nominatim Demo for that and
check “bounded to viewbox” under “advanced options” - but even then
“bike shop” will only find those that are actually called something
like that (“Fred’s Bike Shop”) but not anything tagged shop=bicycle.
A search for e.g. shop=bicycle in a specific area is possible with
Overpass Turbo (overpass-turbo.eu).