Recuerdo con los TTables del BDE me pasaba lo mismo con el Filter, según la documentación de Borland decia que abría la tabla con todos los registros y luego los filtraba, yo lo solucioné en su momento con SetRange y aplicar un índice pero creo que los TFDTables no tienen esa opción de Range, a mi me tocó cambiar todas las referencias de Table a Query en una antigua aplicación al migrarla, es un buen trabajo si tienes muchos.
Así lo usaba:
TContadores->SetRangeStart();
TContadores->FieldByName("CODIGO")->AsFloat = EDesdeCodigo->Text;
TContadores->SetRangeEnd();
TContadores->FieldByName("CODIGO")->AsFloat = EHastaCodigo->Text;
TContadores->ApplyRange();
Edito:
He buscado aqqui y si dice que lo tiene, con Range me funcionaba a mi en los antiguos TTable.:
https://docwiki.embarcadero.com/Libr...DTable_Methods