You can't, a cursor is a read only pointer to a result set, so you're creating a new cursor (pointer to a result set) every time you open it
One way around is to use a union and create and execute it as a string like:
x := 'open cur for '
loop
x := x || 'Select something from dual '
x := x || 'Union all'
End Loop
exec x
This is not tested or checked for syntax or other errors, it's merely for giving you an idea on a possible way to do it