Para los usuarios o para los autores?
Para el autor, la principal desventaja es que el programa es más difícil de vender "en una caja". Cuando el código fuente es abierto, cualquiera puede cogerlo, construir un programa y usarlo gratis o distribuirlo gratuitamente. Incluso si esto está prohibido por el acuerdo de licencia, es más fácil crear a partir de las fuentes que crackear binarios.
Así que la mayoría de los programas de código abierto son gratuitos. Los programas comerciales de código abierto obtienen beneficios mediante la prestación de servicios de pago (navegadores y otros programas cliente), la venta de un producto adicional (controladores) o la venta de programas de código abierto a uno o varios grandes usuarios que pagan por la certificación y el mantenimiento (distribuciones comerciales de Linux).
Una desventaja importante puede ser la necesidad de utilizar sólo componentes abiertos. No se puede abrir un programa que no se posea por completo. La vergüenza sobre la calidad de su código también puede influir.
Para los usuarios, la desventaja de usar software de código abierto es que sus competidores pueden usar el mismo software por el mismo precio. También pueden tomarlo y mejorarlo y ganar una ventaja sobre ti.
Eso' es todo lo que se me ocurre.
Por supuesto, hay ventajas. Los autores ganan informes de errores más cualificados y a menudo "trabajo gratis". Los usuarios ganan más confianza en la calidad del programa (que ya ha sido analizado por muchos externos y puede ser analizado por usted o por su experto contratado), una corrección de errores más rápida y la capacidad de influir en la adición de nuevas características.
Las desventajas o ventajas superan en varios casos. Por eso' tenemos diferentes tipos de software. También existe la inercia de la industria.