It's because deptno is a numeric field and you're trying to return a string OR a numeric 0 in place of it (see that ELSE clause.) That won't work.
You have to do something like this:
SELECT empno, ename, sal, "SalaryRange" =
CASE WHEN deptno = 10 THEN ' Low Sal '
WHEN deptno = 20 THEN ' Middle Sal '
WHEN deptno = 30 THEN ' High Sal '
ELSE ' Unknown '
END
FROM emp1