Normal evolutions can change the HP stat because it cant happen mid-battle. All normal evolutions take effect outside or after battles, allowing HP to be added withouth hassle.
Mega Evolutions on the other hand can only take place during battles. Most likey would a bunch of stuff like Substitutes and HP restoring moves cause all sorts of glitches and crashes if the Pokemon could change HP mid game.
That's is my theory to why the HP stat can only change in between battles and not within them.