Non è possibile accedere a un CTE al di fuori dell'intera dichiarazione. E non puoi accedere a singole parti di un CTE al di fuori della SELECT finale per un CTE.
Devi mettere il tutto CTE (compresa l'istruzione SELECT finale) in il ciclo del cursore:
FOR R IN (WITH TMP1 AS (.....),
TMP2 AS (......),
TMP3 AS (......)
SELECT DISTINCT .....
FROM TMP1
JOIN temp2 ON ...
JOIN temp3 ON ...
WHERE .....)
LOOP
-- here goes the code that processes each row of the query
END LOOP;