Die gespeicherte Prozedur gibt nicht nur das Ergebnis des letzten SELECT zurück. Sie müssen den Wert tatsächlich zurückgeben:
CREATE OR REPLACE FUNCTION fun() RETURNS text AS $$
BEGIN
--- ....
RETURN(SELECT dblink_disconnect());
END
$$ LANGUAGE plpgsql;
Sie erhalten den Fehler, weil Postgres erwartet, dass die Funktion etwas vom Typ Text zurückgibt, aber Ihre Funktion nichts zurückgibt.