потому что вы объявили friend istream &operator>>(istream &in, phonebook &book);
Так что этот оператор >> не является функцией-членом телефонной книги.
Цитата из стандарта C ++ 03
11,4 Друзья
Друг класса - это функция или класс, который является не членом класса, но ему разрешено использовать закрытые и защищенные имена членов класса. Имя друга не входит в сферу действия класса, и друга не вызывают с помощью операторов доступа к членам (5.2.5), если только он не является членом другого класса.
Так что удаление phonebook::
будет работать:
istream& operator>>(istream &in, phonebook &book)
{
in >> book.name >> book.prefix;
return in;
}