Blocking a site in htaccess in this case is analogous to blocking a search engine in robots.txt. It won't prevent it from mentioning your site by name, it will just prevent it from saying anything about it. A much more interesting question is how the search engine found these pages in the first place. Did someone else link to them, or does the search engine plug "example.com" into the site's URL formula, in the same way that it tries adding bogus parameters or requesting nonexistent pages?
Now, the issue I have has got nothing to do with how Google, or any other search engine lists my site.
It should, though, because it's all about interpretation of the search term. How is the search engine to know that when you put "example.com" in the search box, you want to find only results from the site example.com? Not just the first result-- which we've got-- but every result to the exclusion of all others. That's a major reinterpretation of the search-engine concept. What if someone wants to find out what others are saying about example dot com?
They are using my trade mark and my domain name in order to promote their (IMO) useless services.
It's got nothing to do with your domain name. The name only came up because someone searched for it. It could just as well be amazon dot com or irs dot gov.
Ideally, a search for a site name will bring in that exact-match site in #1 place, preferably with sitelinks. That's enough for the people who use a search engine as an address bar. Results 2-999 can be anything else.
Ordinary humans may not know what the site: operator is. But they've got no excuse for not knowing the difference between a search box and an address bar.