00911. 00000 - "invalid character"
Thanks to Phil's comment the correct statement looks like this:

SET SERVEROUTPUT ON

DEF username = 'cuser2'

DECLARE

   i_matching NUMBER(1) := null;

BEGIN

   SELECT COUNT (1) INTO i_matching FROM dba_users WHERE username = UPPER('&amp;username');

  DBMS_OUTPUT.put_line(i_matching);

   IF i_matching = 0 THEN

    EXECUTE IMMEDIATE ('create user &amp;username IDENTIFIED BY &amp;username');
    EXECUTE IMMEDIATE ('GRANT CONNECT,RESOURCE,UNLIMITED TABLESPACE TO &amp;username');
    EXECUTE IMMEDIATE ('ALTER USER &amp;username DEFAULT TABLESPACE USERS');
    EXECUTE IMMEDIATE ('ALTER USER &amp;username TEMPORARY TABLESPACE TEMP');

   END IF;

END
;
/