Because the assumption is code is expensive to generate. Otherwise why would you put all the upfront effort into all of the planning?Just write some code and iterate on where it goes.
Maybe this is a paid feature that we're going to charge money for. Or we're going after a new market segment, or trying to take business from a rival. A new feature might have regulatory or legal requirements, somebody needs to understand all that.
At the very least, someone wants this new thing for a reason. You can't just guess, you actually have to talk to people and understand the problem domain lol.
I almost always have a pretty good idea of what I'm making and how I'm going to make it before I start.