One reason is that AMD has a single-instruction bit rotate, which is used a lot in the hash function. Nvidia needs three instructions.
Another is that AMD uses a large number of simple cores, and Nvidia has a smaller number of more complicated cores. The simple cores are all the hash function needs, so AMD can run more operations at once.
Another is that AMD uses a large number of simple cores, and Nvidia has a smaller number of more complicated cores. The simple cores are all the hash function needs, so AMD can run more operations at once.