Съхранената процедура няма да върне просто резултата от последния SELECT. Трябва действително да върнете стойността:
CREATE OR REPLACE FUNCTION fun() RETURNS text AS $$
BEGIN
--- ....
RETURN(SELECT dblink_disconnect());
END
$$ LANGUAGE plpgsql;
Получавате грешката, защото Postgres очаква функцията да върне нещо от тип текст, но вашата функция не връща нищо.