Si la tabla utilizada en la subconsulta devuelve un valor dos veces, JOIN también devolverá las filas coincidentes dos veces, mientras que una condición IN o EXISTS las devolverá solo una vez.
Los JOIN tienden a tener un mejor rendimiento, pero hay situaciones en las que ese podría no ser el caso, en particular para cada base de datos (incluida la versión).
Referencia: