Consegui resolver, eu estava vacilando na hora de colocar o SQL no cursor.
Queria listar varias linhas de comando, mas do jeito que fiz só listava a primeira.
Fiz assim
set echo off
set feed off
set pagesize 4000
set linesize 150;
set verify off;
set serveroutput on;
undef usuario
ACCEPT usuario char PROMPT 'Usuario:'
DECLARE
ccount number;
usuario VARCHAR2 (30);
CURSOR cursorcount IS
SELECT object_type, owner,object_name from dba_objects where object_type'SYNONYM' and UPPER(owner) = UPPER('&usuario');
teste cursorcount%ROWTYPE;
BEGIN
SELECT count(object_type) into ccount from dba_objects where object_type'SYNONYM' and UPPER(owner) = UPPER('&usuario');
OPEN cursorcount;
LOOP
FETCH cursorcount INTO teste;
exit when cursorcount%notfound;
DBMS_OUTPUT.put_line ('DROP ' ||teste.object_type || ' '|| teste.owner||'.'||teste.object_name|| ';');
END LOOP;
/*
ELSE
DBMS_OUTPUT.put_line ('DROP USER ' ||UPPER('&usuario')|| ';');*/
close cursorcount;
END;