O procedimento não pode ser compilado porque a tabela não está presente em tempo de compilação.
Enrole a inserção em execute imediato também ou use uma tabela temporária global (geralmente a solução preferida para dados temporários).
create or replace procedure insertval8 (id in number,
name in char )
is
begin
execute immediate 'create table edu2(id number(20), name char(12))';
execute immediate 'insert into edu2(id, name) values (:1, :2)'
using id, name;
end;