Nie jest to możliwe, jak w sql, kolejność wykonania jest najpierw klauzula where, a następnie select. W momencie wykonywania klauzuli nie wie, co zdefiniowałeś jako alias, więc otrzymasz ten błąd.
Musisz przepisać swoje zapytanie w ten sposób.
SELECT
SUBSTRING(pk, 6, 2)::INT AS _year
FROM
listing
WHERE
SUBSTRING(pk, 6, 2)::INT > 90