Why is it so hard to get bad smells out of plastic protein shaker bottles?
Yes, it is hard (or impossible) to remove bad smell and even color from plastic containers. These containers are made of polymers, which consist of macromolecular chains arranged beside each other in ordered and disordered fashions. So, there are open spaces among these macromolecular chains that are as safe heaven for other materials (like, foodstuff) to diffuse in and remain there for ever.
For the specific case stated in the question, protein and other stuff from the mix penetrate into the microstructure of the bottle along the time. They remain there, and as a result of biodegradation, some products with bad smell are produced and released, such as ammonia. Washing with acids (vinegar) and alkaline (sodium bicarbonate, baking soda) solutions overnight might help. But, when serious, it is better to replace the bottle with a new one.