Because internet architecture is based around transit capacity, not usage. You buy capacity like 10gbit/sec lines to interconnect with and Cloudflare has enough bandwidth to easily support their free customers and upsell on other features.
Remember they are also a security service with DDOS protection and that requires high bandwidth anyway. Other CDNs don't charge for bandwidth but rather for bytes-used, which is just more profitable, especially if you don't have a lot of other features to charge for.
I'm surprised that more CDNs don't try to compete with CF on this but apparently that's just how they want to operate.