Den lagrade proceduren returnerar inte bara resultatet av den senaste SELECT. Du måste faktiskt returnera värdet:
CREATE OR REPLACE FUNCTION fun() RETURNS text AS $$
BEGIN
--- ....
RETURN(SELECT dblink_disconnect());
END
$$ LANGUAGE plpgsql;
Du får felet eftersom Postgres förväntar sig att funktionen ska returnera något av typ text, men din funktion returnerar ingenting.