I think it’s a bit of both. The law has good objectives (making sure news organizations can have some revenue), but the way they implemented it is terrible (paying to post a link). Meta just complied in the most dick-move way they found.
EDIT: I think a better way they could’ve done this is to tax the hell out of ad revenue from Canadian users. Then just subsidize the news with this money.