The reason you are not seeing any results is that the FOR loop is not returning any rows as there is no owner called 'O'.
To select all the table for a user who is not the logged in user you could use;
FOR t IN (SELECT t.table_name, t.owner FROM all_tables t where owner <> USER)
However you will get a failure almost immediately as MAX(DATE) suggests that every table has a column called DATE. Which is not true.
It looks like you probably want a list of all the tables for a specific list of users (not SYS or SYSTEM or any other 'system' account) with the latest date that a row was added or created or something else involving a date.
To do that EVERY table for the schema must have the column you want to check.
FOR t IN (SELECT t.table_name, t.owner FROM all_tables t where owner IN ('SCHEMA1', 'SCHEMA2','SCHEMA3')
my_sql := 'SELECT MAX(update_date) FROM ' || t.owner || '.' || t.table_name ;
dbms_output.put_line('executing: ' || my_sql);
EXECUTE IMMEDIATE my_sql;
WHEN OTHERS THEN
dbms_output.put_line('ERROR!! -- ' || SQLCODE || '-- ' || sqlerrm || ' --' );
SCHEMA1 / 2 / 3 are the users you know have the tables you are interested in and it assumes that each table has a'update_date' column.