Using the Fill and Replace command to fill up all dispenser?

The NBT of the to be placed block belongs directly after the to be placed block (technically it's even a part of it). And you didn't tell the game which block to replace. And metadata (the 0) no longer exists.

/fill -884 28 977 -889 25 972 dispenser{Items:[{id:"tnt",Count:64b,Slot:0b}]} replace dispenser