To clarify, it's not adding number to name, it's adding a new material each time. Just like objects, if you add a new one with same name, it gets number extension.
As an alternative, for those that don't wish to use material specials addon, a simple little cleaner script.
To elaborate on the answer to consolidating all materials to one, "xxx.nnn" -> "xxx". in disable material duplication
after you have imported an FBX all imported objects are in the context.selected_objects collection. Not all of these will have materials. A more brute strength approach would be using the scene.objects collection, which is all objects in scene.
Code from answer modified to be run directly after import, that is while the newly imported objects are selected. Copy script and paste in text block, then run script to remove dupe materials only from the objects newly imported..
import bpy
context = bpy.context
scene = context.scene
mats = bpy.data.materials
for obj in context.selected_objects: # selected context.scene.objects:
# all objects have material_slots
for slot in obj.material_slots:
part = slot.name.rpartition('.')
mat = mats.get(part[0])
if part[2].isnumeric() and mat is not None:
slot.material = mat