Un cursor ejecuta efectivamente un SELECT y luego le permite iterar sobre el conjunto de resultados, que se mantiene en una instantánea del estado de la base de datos. Debido a que su conjunto de resultados ya se obtuvo, no se verá afectado por la instrucción UPDATE. (¡Manejar las cosas de otra manera requeriría que vuelva a ejecutar la consulta cada vez que avance el cursor!)
Ver:
http://www.techonthenet.com/oracle/cursors/declare.php