Sort the 20 by whether anything can bite after you print, and the line does not fall between good companies and bad ones. It falls between generators that hand you a file and generators that keep your code on their servers. All 5 of the static-only tools — QRCode Monkey, goQR.me, ForQRCode, QR Code Generator (.org), Shopify QR Code Generator — had nothing that could switch a printed code off, because there is nothing of yours in their possession to switch off. A static QR code stores its payload inside the pattern; the phone decodes it without contacting anyone.
Every generator that hosts the destination, meanwhile, had at least one lever. Sometimes it is disclosed plainly — one vendor's own pricing FAQ states outright that for your QR codes to work, the account linked to them has to stay active, which is the whole business model in a single sentence. Sometimes it is a row in a feature table: on one platform “watermark-free QR codes” carries a cross on the free plan and a tick on every paid one, so the watermark is the free tier. Sometimes it is arithmetic — a free plan advertised as “Free Forever” that pauses every scan across all your codes once the shared pool of 1,000 a month runs out, which on a busy shop counter is a fortnight.
The 4 that put their own branding in the scan path deserve their own mention, because it is the limit nobody discovers by reading a pricing page — you discover it when a customer scans your menu and gets someone else's advert first. One vendor's FAQ confirms it by answering a question about removing ads on a paid plan; another notes its lead-capture pages carry a “powered by” footer.
None of this makes dynamic codes a scam. An editable destination and real scan analytics are worth paying for, and most of these companies charge fairly for them. It makes the word free, applied to a hosted code, a description of a trial period rather than a property of the code.