Oracle PL/SQL does not work -- bind variable not allowed
You can't pass a procedure as a bind variable.
You should be able to dynamically build the entire anonymous PL/SQL block and execute that.  Something like this
declare
  l_plsql varchar2(1000);
begin
  l_plsql := 'begin 
                dbms_hs_passthrough.execute_immediate@mylink ... 
              end;';
  execute immediate l_plsql;
end;