Yes. Cloudflare has its own at-cost / no markup registrar you can use as well, it's like $10/year for com or something pretty cheap. Some Cloudflare products like Pages or Workers have default pages.dev/workers.dev urls you can use, but for the base CDN product/that you can point at any origin you need to have your own domain
Cloudflare CDN is a pull CDN. Your requests go to Cloudflare, and then Cloudflare if needed reaches out to your origin. Since the requests go to Cloudflare first it can also handle security and such
For example https://discord.com/ is behind Cloudflare CDN. All requests go through the CDN and then to Google Cloud which is what Discord uses (probably, or some other host)
Think of it this way: The Cloudflare CDN is a http request pipeline. It can do a ton of things with optimizing requests, caching, redirecting, etc. To get the full experience, you need your own domain. For the free plan, you need to also let them control your DNS. Cloudflare offers specific products like Workers and Pages which are behind the CDN and have some of its features but they're specific offerings, like Workers lets you execute serverless code. You don't have full control over the CDN in those cases. For workers.dev and such it's mostly recommended not to use them due to that lack of control, and instead to use Custom Domain on your own Cloudflare protected website to get the full security features and such. No way around it
The gist is, you need a domain to begin with to use most cloudflare features. Cloudflare is the middleman between your server and the user, if you have no servers (domain points to it), the middleman can’t do much for you.