That's a good question, I'm not sure why it's considered such a bad idea other than for performance reasons. The only thing I can think of is that it does display all the db query details, which might help out someone trying to hack the site.
You might be interested in this:
https://vborg.vbsupport.ru/showthread.php?t=265999 for ways of enabling debug mode only for yourself. Another way around it (the way I've always done it), is to have a test site set up in debug mode and transfer things to the live site once they're working.