Genetics plays a HUGE role in my opinion. We can all certainly get the most out of our ability by training properly and racing to get experience with it and so on, but at some point genetics has to play a role.
In high school, I did EXACTLY the same workouts and training as the other varsity guys on the team, but when it came to race day, I beat them by a minute+ in CC and at least 45 seconds in the 3200 in track. I look back and wish I had trained more, but I didn't know any better then, and neither did my coaches.
Personally I think to be good at the sprints requires more God-given ability than being good at distances. If you just don't have it in the 100 meters, no amount of training is going to allow you to find it, but with distance races, you can improve greatly by simply doing the work.