It's because a lot of the hair occupies the same data position in the code/layer on the character. The more customization they add, even little things, the more data they have to load in and save for each character.

I'm sure if they had the means, and the machines we play it on had the means, we could get precision dye jobs and all sorts of crazy stuff going.

I'd rather they didn't focus on such minutiae though, as it adds so little compared to any other thing they could spend their limited dev time and team on.