O problema não é com
dbms_output
mas com SQL*Plus. Usar
SET SERVEROUTPUT ON FORMAT WRAPPED
ou
SET SERVEROUTPUT ON FORMAT TRUNCATED
para preservar os espaços.
Da documentação (PDF) de
SET SERVEROUT WORD_WRAPPED
(que é o padrão):dbms_output
mas com SQL*Plus. SET SERVEROUTPUT ON FORMAT WRAPPED
SET SERVEROUTPUT ON FORMAT TRUNCATED
SET SERVEROUT WORD_WRAPPED
(que é o padrão):