Docker image registries
It depends on several factors.

If your images can be public or must be private. If you can make a public image, docker hub could work.

With ECR you will have a fine grain control of your permissions, integrated with IAM

On the other hand, ECR it's only available on one region so if you pull an image from a different region you will be charged for that traffic and the latency could be a problem so if you need a multi-region registry yo should implement that mechanism by yourself.

In brief, I wouldn't use public registry for production applications. You'll have more control with a private registry like ECR or other 3rd party solutions.