Den lagrede procedure vil ikke kun returnere resultatet af det sidste SELECT. Du skal faktisk returnere værdien:
CREATE OR REPLACE FUNCTION fun() RETURNS text AS $$
BEGIN
--- ....
RETURN(SELECT dblink_disconnect());
END
$$ LANGUAGE plpgsql;
Du får fejlen, fordi Postgres forventer, at funktionen returnerer noget af typen tekst, men din funktion returnerer ikke noget.