You will probably have images that you will not share to the world. Said images will probably be made available to your infrastructure (k8s clusters, CI/CD runners etc). So you have to either build your own registry or pay someone to do it for you.
Of course, if you use images for dev only, all of that are worthless and you just store your images on your dev machine
Also if your infrastructure is within AWS, you want your images to also be within AWS when the infrastructure wants them. That doesn't necessarily imply a private registry, but it's a lot less work that way.
Of course, if you use images for dev only, all of that are worthless and you just store your images on your dev machine