Hola:
He probado la sentencia que propones incluyendo INNER JOIN:
Código SQL
[-]
SELECT maestro.dni, maestro.nombre, maestro.ape1, maestro.ape2
FROM maestro INNER JOIN detalle ON maestro.dni = detalle.dni
WHERE ((detalle.curso='francés' AND 'inglés' AND 'árabe'))
ORDER BY maestro.dni;
Pero sólo obtengo los que tienen francés, tengan o no: inglés y árabe.