Difference between returning dyn Box<Trait> and impl Trait

I think this is more a type theoretic related question to existentials at all and not that specific to dyn Trait.

You can think of existentials as where constraints of the form T where T:Trait, so obviously an existential seems to be a type parameter or constraint, but it's actually a type because "where" is an operator unifying all T's conforming to the trait "Trait" to one type.
So you can think of a Trait as a union type which is itself a concrete entity.