Why do elements change their colour in reactions?
Elements don't have inherent colors at all; substances do. Furthermore, while there are situations when some compounds (and even copper sulphate) change their colors, this is most definitely not one of them. Here copper sulphate is blue and never changes to pale green. It's just the reaction... wait, didn't you write the equation yourself? See, in the end there is no more copper sulphate. It is gone, and so is its color. What you see now is the color of $\ce{FeSO_4}$, or more precisely, of $\ce{Fe}^{2+} (aq)$.

As to why compounds have certain colors... well, this is a really huge body of knowledge. Long story short, color is caused by absorption of light with some specific wavelength. What wavelength is it, is determined by possible electron transitions within the substance in question. The transition may be between some molecular orbitals, if the compound is molecular. Or it may be between the orbitals of some metal ion, as is the case in your example. In many cases you may be able to predict the color of a compound you have never seen, using simple techniques.

Come to think of it, this question must have been asked before, and surely there is already a nice answer with lots of pics and stuff.