I’m no expert in dataview, but here is my take. I think this is because the metadata “company” is, under the hood, an array of objects.
In the first case:
company:: [[Cool Company]]
company is an array of “link” objects. To filter on those notes, use contains but without the quotation marks:
LIST
WHERE contains(company, [[Cool Company]])
In the second case, you are adding the string (since 2021) which casts the type of company to string (instead of link). That’s why the call to contains with the quotation marks works.
My advice is to remove the (since 2021) (put it in another metadata field) and use contain without the quotation marks.