A captive audience is the primary reason. You generally can't take much food into the stadium and you generally can't re-enter once you leave unless you buy another ticket. Therefore, they can charge high prices and people who are hungry and/or thirsty will pay them.