I looked at the implementation and it's slow because it's technically correct (checks if the incoming set of tags is a sub set of the corresponding instance tags), but does so in an inefficient way.
I think it can be made to be about 50% faster, by handling the special case of a single tag and in other cases, improving the check against the existing tags set. That would be it for improvements though, I don't think it can be made to be much faster because the condition is inherently more complex than just comparing two values.