In the early days of fig-Forth, assemblers were often the only programming tools available. This was fine for writing Forth CODE words, but high- level threads had to be written as a series of DW directives. Because they create a new Forth from within Forth, these are often called metacompilers. Metacompilers are cryptic and hard to understand, and you must thoroughly understand a metacompiler in order to use it. Assemblers are understood by the average programmer.
Assemblers use familiar editing and debugging tools.
It's easier to tweak the Forth model, since many design decisions affect the internals of a metacompiler. Once you understand your metacompiler, you can port it easily to new CPUs. The only tool you need to acquire is a Forth for your computer. The last is particularly applicable to those who don't own PCs, since most cross-assemblers require PCs or workstations these days. I'm painfully aware of the tradeoffs.