Por lo pronto, demasiados INTO...
Esta mal escrito. Se ponen primero todos los campos y luego todas las variables, con un solo INTO.
Además de eso, no estás definiendo bien los parámetros del prototipo. Un VARCHAR debe tener indicada su longitud, no basta con poner "VARCHAR", porque no estás programando en C, C#, o Java. Esto es SQL.
Código SQL:
Ver originalDELIMITER $$
CREATE PROCEDURE salarios_procedure(OUT nomb VARCHAR(100), OUT apell VARCHAR(100),OUT depar VARCHAR(100))
BEGIN
SELECT e.Nombre, e.Apellido, nomDepartamento
INTO nomb, apell, depar
FROM cargoxempleado ca
INNER JOIN empleados e ON ca.codEmpleado = e.codEmpleado
INNER JOIN departamentos d ON d.codDepartamento = ca.codDepartamento
WHERE salario > 2000000;
END$$
DELIMITER ;
Finalmente, el DELIMITER debe tener siempre un espacio antes del delimitador de sentencias nuevo.