The #1 reason is that scouting/player evaluation isn't a science. One person's trash may be another person's treasure. In fact, in the evaluation industry it is very much encouraged for you to have your own opinion, and to not copy someone else's. Due to that, you are naturally going to have some discrepancy among the players. However, good talent evaluators should never be more than one grade off from each other. What does that mean? It means that its OK to have a 4* rated as a 5* or vice versa, but it isn't generally OK to have a 5* rated as a 3* or vice versa.
The #2 reason is that these recruiting websites don't all have the same resources, either in number of personnel, quality of personal, or financial capability to offer the evaluation coverage that is necessary.
Due to all this, it can be very difficult for "late bloomers" and grade risk players, no matter how good, to rise in the rankings of some recruiting services. They do much better with guys that have a track record. Kids like Chris Jones, often never get their due because they recruiting service simply doesn't have the means to get enough information to stick their necks and reputation on the line for that kid. Chris really benefited because of the MS/AL all-star game and the Under Armour game. Without playing in those games, Chris would probably still be a 4*.
As far as how stars are calculated, look at it like this: 2*= Below Average or not evaluated 3*= Average
4*= Above Average 5*= Awesome/Excellent/ Could be first round type talent
Hope this answers your question.