In answer to the first question, there are almost as many reasons for putting on a race as there are races. This is how many races get started. Behind every running event, there was someone somewhere who thought up the idea. Then again, the people who make up the running community may or may agree with your assessment. Because you want to raise money for a charity.
Many events are fund-raisers.
It's a great way to support a charity, but as I will allude to later, just because you put on a race does not mean you will make money, even if it is for the best and most worthy cause in the known universe. Because you want to make money for yourself. Please believe me when I say that earning money from directing a road race ranks somewhere between telemarketing and coal mining as a means of employment. Unless you are offered the directorship of the Boston, New York, or London Marathon, you will be far better off choosing an easier way of making money, such as collecting recyclable containers on the side of the road. Because it's in your nature.