There are a lot of reasons. The principals are reported below but basically these are techniques that are not meant to be executed on a live system with real users.
If you have a real problem you should aim to reproduce it in a Dev/Test environment where you can trigger it at will without the fear of crashing the system and where you are free to perform any debugging and testing practice that may turn useful.
Tracing and debugging can slow down the environment negatively affecting other users.
Collecting traces in production can lead to very large files being produced in the temporary directory leading to file system and memory problems.
The slowdown induced by tracing will generate alerts and can trigger false alarms in other platform monitoring tools. If sysadmins are not informed they may find difficult to identify and distinguish these alarms from real problems and may decide to take inappropriate corrective actions.