Le problème n'est pas avec dbms_output
mais avec SQL*Plus.
Utiliser
SET SERVEROUTPUT ON FORMAT WRAPPED
ou
SET SERVEROUTPUT ON FORMAT TRUNCATED
pour préserver les espaces.
À partir de la documentation (PDF)
de SET SERVEROUT WORD_WRAPPED
(qui est la norme) :