To this day I suspect it’s related to my home router or ISP (though I can’t prove it).
It works fine on other connections like my mobile hotspot or office network.
Switching to Cloudflare DNS didn’t help.
The only workaround I’ve found is disabling:
Docker Desktop → Settings → General → "Use containerd for pulling and storing images"