I'm no scientist so my knowledge, limited as it is, comes from my reading, talking to people and my experience.
Acrylic behaves differently to natural fibres, like wool and cotton, because it's not really a fibre - it's a form of plastic! When natural fibres are dyed, the colour penetrates to the core of the yarn. Acrylic doesn't allow the dye to penetrate - it just coats the surface. I'm told this is also true of nylon and polyester.
I have tried some acid based dyes on acrylic. Acid dyes - whether commercial dyeing products, or food products like jelly [jello], food colouring and Kool Aid - look great until the yarn is rinsed. The colour washes off immediately. The trick with acrylic is to find something that will stick to the acrylic but not make the yarn hard. Hence my earlier experiments [here and here] with acrylic paint. Heavily diluted paint gives very pale results. To get the bright colours I want, I'd have to use almost undiluted paint; which, of course, would stick but it would make the yarn stiff.
In a later post, I will tell you about the experiments DD and I have been making with fibre-reactive cold-water dyes on acrylic. Stay tuned!