Una solución que uso para esto es convertir el rango de fechas en un rango de números enteros que puede usar en un bucle for, luego volver a convertirlo en una fecha para hacer cosas con él. No puede hacer uniones ni nada de esta manera, pero es una solución mucho más pequeña que las que ya se publicaron:
declare
start_date number;
end_date number;
business_date varchar2(8);
begin
start_date := to_number(to_char(to_date('2013-04-25', 'yyyy-MM-dd'), 'j'));
end_date := to_number(to_char(to_date('2013-05-31', 'yyyy-MM-dd'), 'j'));
for cur_r in start_date..end_date loop
business_date := to_char(to_date(cur_r, 'j'), 'yyyy-MM-dd');
dbms_output.put_line(business_date);
end loop;
end;