Потому что вы передаете объект функции, а не вызываете её.
А еще, вам нужно убрать в return функцию print - она просто выводит данные на экран.
Вроде как правильный код:
import telebot, requests, bs4
from bs4 import BeautifulSoup
bot = telebot.TeleBot("TOKEN")
def pars():
page_link = 'https://random.cat/'
response = requests.get(page_link)
html = response.content
soup = BeautifulSoup(html, 'html.parser')
obj = soup.find('img', attrs={'id': 'cat'})
return obj.attrs['src']
@bot.message_handler(commands=['rcat'])
def randomcat(message):
bot.send_message(message.chat.id, pars())
bot.polling(none_stop=True)