There's no good reason for it, it simply reflects the tastes and preferences of people who are attracted to programming who are the market. The people who like visual aspects of programming are a minority. The mainstream does not "get" it, doesn't want it, and doesn't care about it.
To prove this, take a case that is much simpler than visual programming: Donald Knuth's "literate programming." This simply means an environment in which the source code can be commented with comments having the full capability of TeX, with rich text and illustrations.
Why is it that IDEs, programmers' editors and compilers are restricted to plain text? Why not rich text and compound documents (embedded graphics?) It not a difficult technical problem, as shown by the fact that Knuth already solved it. It is not a standards issue, as there is at least one perfectly good open and ubiquitous standard that could be used--HTML. It is not a cost or difficulty of migration issue, as shown by the fact that everyone was able to migrate from ASCII to Unicode. Yes, HTML would be harder, but perfectly feasible. Unlike visual programming, it is still just text.
The reason we do not have mainstream "literate programming" environments is because the vast majority of programmers, who form the market, don't care. They just don't want code with word-processor-like comments in it. They are perfectly happy to represent emphasis with leading and trailing underbars--after all, the semantics is the same.
Closest I ever came to literate programming was the original version of Nisus, a Mac word processor which stored all the formatting information in the resource fork. It was a fully formatted WP document, but if you ignored the resource fork it was an ASCII document. No, it didn't need to be converted, it just was. And you could use Nisus to write literate-programming-like documents, and provided the comments were delimited by /* and */ you absolutely could use a Nisus document as input to any standard Mac compiler with no change. However, there was no good way to integrate it into an IDE...