Почему eloquent ищет другую сводную таблицу?
Потому что надо читать документацию, в которой написано, как ларавел формирует название для pivot-таблицы, если оно явно не указано в связи и как указать его явно, если не устраивает то, как это делает ларавел.
Название сводной таблицы формируется из названий таблиц моделей в алфавитном порядке - category_product, а не product_category