That error message can be a little misleading, because it tends to make you think the problem is with the user's credentials, when in fact the "access denied" could be for just a given operation (which I suspect you realize from your next statement).
You may not be missing anything at all, and it may be a true mystery, but I'm thinking it is more likely that phpMyAdmin is not telling the whole story. There are things that phpMyAdmin on DreamHost thinks it can do that it actually can't, and I think that your migration process may be trying to use one of those "gotchas".
For instance, from the DH wiki article on MySQL:
Of course, I'm just guessing here because I haven't seen the queries your migration process employs, but you did ask for suggestions, and this is what comes immediately to my mind.
--DreamHost Tech Support