How to pass a newly INSERTed row to a function?
A trigger requires a trigger function. And those can only be written in PL/pgSQL.

So you need something like this:

CREATE OR REPLACE FUNCTION schema1.clone_to_table2()
 RETURNS trigger
 LANGUAGE plpgsql
AS $function$
BEGIN
  INSERT INTO schema2."table2" ("uid, "did")
  VALUES(new.uid::text, new.did);
  return new;
END;
$function$
;


BEGIN does not require a ; at the end. 

And then a trigger definition to go with that

CREATE TRIGGER on_insert
  AFTER INSERT ON schema1.table1
  FOR EACH ROW
  EXECUTE PROCEDURE schema1.clone_to_table2();