Broadly speaking, you get what you pay for, but there are exceptions. GCC has such a wide user base that most of the bugs will have been either fixed or at least documented.
However free, and OSS tools in particular are likely to have been developed to the point where they work, but not much further, so things like code size and/or speed efficiency and debug capabilities will probably be poorer than a commercial compiler.
There are different versions of free - manufacturers sometimes provide free tools which are cut-down versions of commercial tools, e.g. the kickstart versions of IAR, typical limitations being locking to a specific device, code size limits, or in a particularly stupid move by Microchip*, code optimization levels.
In a commercial environment, the cost of a commercial tool will often pay itself back in terms of support, stability, debug capabilities and efficiency.
Another aspect is that any tool supplied by the manufacturer will be likely to support new devices earlier. Paid-for commercial tools also need to keep up with new developments, although they may charge for new device support.
*By having their free 8-bit compiler produce crappy code, it makes their chips look inefficient.