TL;DR
Check the details for your authentication option and the login troubleshooting docs. The solution mentioned below works for individual login with Azure AD for Docker and Helm.
Although the accepted answer from @Anudeepa fixes the issue, this is not the desired purpose of the Admin account (see docs):
The admin account is designed for a single user to access the registry, mainly for testing purposes. We do not recommend sharing the admin account credentials among multiple users. All users authenticating with the admin account appear as a single user with push and pull access to the registry. Changing or disabling this account disables registry access for all users who use its credentials. Individual identity is recommended for users and service principals for headless scenarios.
So, the first address to tackle the issue should be the docs to troubleshoot login. The mentioned error message Error response from daemon: Get https://<MY_REGISTRY_NAME>.azurecr.io/v2/: unauthorized: Application not registered with AAD can have multiple causes.
Keep in mind that there are multiple options to authenticate to ACR.
I assume the question either refers to 1) Individual login with Azure AD or 2) Service principal.
My issue was with the Individual login as there is a gotcha. Your username must be 00000000-0000-0000-0000-000000000000 (this is not a placeholder for your own id). The following fixed the error for me:
USER_NAME="00000000-0000-0000-0000-000000000000"
PASSWORD=$(az acr login --name <MY_REGISTRY_NAME> \
--expose-token \
--output tsv \
--query accessToken)
echo "$PASSWORD" | docker login <MY_REGISTRY_NAME>.azurecr.io \
--username "$USER_NAME" \
--password-stdin
echo "$PASSWORD" | helm registry login tacto.azurecr.io \
--username "$USER_NAME" \
--password-stdin