The main reason I think of is that either they don't get proper appraisals or they think there is nothing new to learn at the company they are working at.
I have a friend of mine and he changed 3 companies in just a span of 4 years. All these switch that he took just made bad impression on his resume but again he knew that his talent and enthusiasm for learning will eventually set him to a place where he can prove himself and really after trying and testing the first two company he got his dream job as a Software Developer at Amazon. He has been working there from almost 1.5 years now and he is really happy and keeps bragging about the new things and new challenges he has to learn and face everyday.
Hence as said earlier, the only thing that is responsible for switching company is that either people find nothing to their interest or they are not appreciated well for the job they are doing.
Hope I was able to clarify your doubt.