Unfortunately, this is a consequence of using the profile to add contacts to a group. There are a couple of ways to work around this that may be better for your needs:
Make a smart group. If everyone who makes a contribution should be in a group, why record that information separately from the contribution? Just make the email list a smart group of all contacts with contributions.
Have people opt in. Are you certain that donors know they're signing up for the email list? If not, you really should make that explicit. You could add the "Group(s)" field to the profile to let people choose among all public groups, or you could add a single checkbox field for someone to say they'd like to subscribe, and you could base a smart group on that.
CiviRules. You may find that you can create a workflow for this step using CiviRules and if it does throw up a warning about the contact already being in the group, at least it is out of public view