En lo personal yo no metería una subconsulta a una clausula Select, por que la haría medio pesada, podrías intentar esto
Código:
SELECT
C.*, C.PLAZAS - ISNULL(A.ID, 0) AS LIBRES
FROM
CURSOS C
LEFT JOIN
ALUMNOS A
ON
C.ID = A.IDCURSO
AND
A.ESTADO = 'A'
WHERE
C.ACTIVO = 1
AND
YEAR(C.FECHAINI) = @ANIO
AND
MONTH(C.FECHAINI= @MES
Creo que tambien te dará el resultado
Pruebalo y me cuentas
Saludos!