I tested it on my end and I am experiencing the same issue. When granting a role to a user, the user will not receive an invitation email, unless he is granted a “Project Owner” role.
However, upon reading the GCP documentation [1], I do see that it's working as intended.
"To allow team members to access a project's resources and APIs, project owners can grant IAM roles to users. You can grant a role to a user using the GCP Console, the gcloud command-line tool, or the setIamPolicy() method. When you set a policy or add a binding to grant a role to a user, they won't receive an invite email. Instead, the user's access is updated directly." [1]
[1] https://cloud.google.com/iam/docs/granting-changing-revoking-access