Why is this implementation of the hash function bad?
Because

two sequences with the same acids in different order (e.g. two acids switch places) will have the same hash code;

this will only produce numbers from 0 to your large simple modulus instead of all $2^{32}$ or $2^{64}$ possibilities.