Не смотрел как именно это делают MaterialUI, но как это можно сделать:
Создавать элемент индикатора не внутри конкретного таба, а внутри корневого для всех табов элемента.
Стейт определяющий какой таб активен будет в этом же компоненте и когда активный таб меняется, то реф на него (точнее на DOM-элемент который он редерит) передается индикатору, который и получает необходимое смещение и ширину через измерение DOM-элемента.
Тут есть важный подводный камень - не забыть изменить параметры индикатора при ресайзе (вызванном, например, изменением ширины окна браузера) активного таба