If you have 1000s of relations you will probably end up using ElasticSearch and configure how the tags property is indexed.
For fewer nodes using ${q(site).find('[instanceof Vendor.Package:Product]').filterByReference('tags', myTag).get()} might work.
The filterByReference Operation originates from https://github.com/Flowpack/Flowpack.Listable wich you have to install first for that.
If you have lots of products i would not even try the second approach since the “find” operation is not really fast and all products will have to be checked every time. So in that case go directly to elasticSearch.