OpenJDK es un modelo de referencia y código abierto, mientras que Oracle JDK es una implementación de OpenJDK y no es código abierto. Oracle JDK es más estable que OpenJDK.
OpenJDK se publica bajo la licencia GPL v2, mientras que Oracle JDK se licencia bajo el Acuerdo de licencia de código binario de Oracle.
OpenJDK y Oracle JDK tienen casi el mismo código, pero Oracle JDK tiene más clases y algunos errores corregidos.
Entonces, si desea desarrollar software empresarial/comercial, le sugiero que opte por Oracle JDK, ya que está completamente probado y es estable.
Me he enfrentado a muchos problemas con bloqueos de aplicaciones al usar OpenJDK, que se solucionan simplemente cambiando a Oracle JDK
Las diferencias técnicas son consecuencia del objetivo de cada uno (OpenJDK pretende ser la implementación de referencia, abierta a la comunidad, mientras que Oracle pretende ser comercial)
Ambos tienen "casi" el mismo código de las clases en la API de Java; pero el código de la máquina virtual en sí es diferente, y cuando se trata de bibliotecas, OpenJDK tiende a usar bibliotecas abiertas mientras que Oracle tiende a usar bibliotecas cerradas; por ejemplo, la biblioteca de fuentes.