Some Pokemon are shiny locked to prevent Hacked versions of the same on the GTS. For example, a Shiny Zekrom on the GTS was most certainly a hacked one, probably by using Pokegen or other such illegal tools/ methods. This way, people wouldn't get duped by offers that appeared legit.
Another reason is probably to prevent people from Soft-reseting hundreds and thousands of times to get an alternate coloured version of the Pokémon, quite possibly convincing parents that Pokemon was a bad game that wasted their children's time too much (maybe jot, because those patient enough to SR hundreds of times are generally old enough to know what they're doing, but still, a waste of time nonetheless).
Not gonna lie here, but the third probable reason is what I read on Reddit:
To maintain cutscene continuity. Basically, to ensure that the Pokemon looked same in every cut scene, which increased in frequency since Gen 5, which was also when they were first shiny locked.