ストアドプロシージャは、最後のSELECTの結果を返すだけではありません。実際に値を返す必要があります:
CREATE OR REPLACE FUNCTION fun() RETURNS text AS $$
BEGIN
--- ....
RETURN(SELECT dblink_disconnect());
END
$$ LANGUAGE plpgsql;
Postgresは関数がテキストタイプの何かを返すことを期待しているが、関数は何も返さないため、エラーが発生します。