Thanks for your help guys. Got it figured out.
I’d created a view in the mysql db via a mysql client running on my machine. The effect of this was to set the definer of the view to be mydbusername@mycurrentipaddr. Hence trying to mysqldump from the dreamhost server was authenticating via user/pass but failing due to the ip associated with the view.
I dropped the view, and recreated it from mysql client on the dreamhost server - this set the definer to be email@example.com/255.255.128.0, which presumably covers the DH IP range.
After that, mysqldump worked fine.