There are several reasons I know of; first off it is fun to do, it is another way of engaging with a beloved game, it is a possible career path, and it is a way to share knowledge and educate people. This is by no means an exhaustive list, but some of the common ones that I have, and I have heard from other casters. Let’s look at each one of these in turn.
It is fun. It is so fun I have fallen out of my chair due to getting too into casting and getting too hyped up. On stream, with an audience, I think it is somewhere in this video if anyone wants to find it. That was for a game I do not even have that great of an investment into, I have played Rocket League for about an hour and cannot for the life of me get the car to go where I want it to go. However when I was casting the IU Hoosiers through a tournament, I was so into the game I fell out of my chair. More accurately I threw my hands up at a good goal and the whole chair with me in it toppled over backwards.
Talking about your favorite game is fun. Go down to your FLGS (friendly, local game store) on a Friday night and ask the players about Magic: the Gathering. Make sure you have cleared off your schedule, they will keep talking. Ask them about their best play, or most memorable match. Just sharing your passion with others is exciting and fun to do. Go find your local club soccer (futbal) team and ask them about their best matches. They will tell you.
Casting is fun, it is exhilarating, and it a chance to share your passion with others. It reminds me of connecting with the audience when I was a stage actor. It is not the same, as there is spacial distance between me and my audience when I am casting, but that connection is still there and still great.
I will be honest here. I am not that great a Dota 2 player. Solidly average at best. But, casting allows me to participate at higher levels than my mechanical skills allow. I started playing Dota 2 for research purposes (No really, its true! My lab needed someone else who could understand what was being said in some forum posts about Dota 2). I stuck with the game because I enjoyed it. As in most things I do, I am always striving to become better at the game, trying to learn and improve. However, as a full time student, who teaches, and has a part time job I do not have the time or the energy to devote to really improving in the game. I will not, by my own choices, ever get to the professional level of playing Dota 2.
Casting allows me to participate at a higher level than I can actually play at. I am solidly average as a player, but can engage with the higher skill level games while casting than I can while playing. I have cast professional level Dota 2 , and very high skill level Rocket League, far far FAR beyond my own skill level.