The performance hit you take for doing dynamic dispatch is real and measurable. It's a no-go if you're in a performance sensitive part of your app.
Of course you‘re right if you can‘t alloc, you can‘t use Box or similar stuff.
Also you can avoid a lot of performance hits if you just implement most stuff on the dyn Trait directly!