Eklavya, a self made man, a self learned student. Eklavya could learn archery better without Drona's blessings, knowledge and endorse. Better than even Drona's favorite student. He taught himself without submitting himself to a teacher and this is a reason he's treated as a hero.
Eklavya was born in a tribe, nishada tribe and that was engaged in anti-social acts. They were used to create trouble for the citizens as well as the Kuru dynasty. This is the reason they were allotted to live in the forest. And from there too they were creating problems for the people. When Eklavya approached Drona, he refused to accept him as his student. Most of the people claim this was due to his cast. But let's keep in mind that Drona had been sheltered and appointed by the Kurus. So how could he teach someone who belonged to a cast harming them? I don't think Drona was so narrowed minded.
Because Drona accepted Dhristadyumna as his student despite of knowing he would slay him in the future. So he wouldn't have accepted him in case his mind was so narrow.
So perhaps Drona observed that Eklavya didn't had the character of a protector. A person gains knowledge by not just being expert in the art but after understanding how to use the art he learned. Eklavya had the potential to become the best archer but the character to protect was missing.
Still, Eklavya's determination to learn was unparalleled. He made a clay form of Drona and practiced in front. He practiced; he learnt and became an expert. One day when Drona was travelling in the forest with his students, they spotted a dog which had his mouth sewn up with arrows. Eklavya had been practicing and the dog had been barking. An irritated Eklavya shot arrows to silence the dog. Arjuna was amazed and stunned to see this extraordinary competence in archery used against a harmless creature. All dogs bark, but do this mean we all need to shoot arrows to quiet them? Never! There are several ways to get rid of them without harming. This was such a cruel act against an innocent creature. Arjuna wanted to know who did this and went to inform Drona. Drona came forward and Eklavya bent to him. He addressed Drona as his teacher.
Drona then demanded his "Guru dakshina" and the self-made archer had to sacrifice his thumb. Many argue he demanded his thumb as he never wanted anyone to be better than his favorite student. Yes this is a main reason for sure, not the sole reason. He may have thought that Eklavya may become an anti-social element in the future, looking at how he treated a harmless dog. So in the future he may create troubles for innocent people. To end all the possibilities, he demanded his thumb. Eklavya without a hesitation agreed and sacrificed his thumb. He will always be remembered for his selfless adoration and respect for his Guru, a Guru who never considered him his student, who never taught him. I've always been against this act of Drona. Eklavya cut his thumb without a bit of hesitation, so wouldn't he have developed a character he lacked, if Drona wanted him to do so? Indra felt ashamed after Karna handed over his Kavach and Kundal to him. This is the reason he gave him a powerful weapon, Bramhastra. Drona would have given something to Eklavya.
But Eklavya still practiced the art and decided to battle for the Kauravas in the war. So before the war, Krishna challenged him and killed him in the battle between them. He was purified and released by Krishna.
So Eklavya had the ability to become the greatest archer, but he lacked the character. This is the reason he used his skills against a harmless creature. His character would have caused troubles for him and others too. Drona's act can't be considered fair, and so he received a curse.
Both sides were guilty!