В функции look_up есть строка birthdays.get(name, 'Не найдено'), из которой можно сделать вывод, что в переменной birthdays должен быть словарь. Однако, при вызове функции вы передаёте ей кортеж. У кортежей нет метода get, о чём в ошибке и написано.
Аналогично после вашего исправления вопроса, нельзя присвоить значение ключу, так как у кортежей ключей не бывает.
Потому что bot.polling() не возвращает управление вызывающей стороне. Есть другие способы выполнять периодические операции. Впрочем, в вашем случае они и не нужны.