This is just how Zbrush fills large, concave holes. It doesn’t have any way to guess how a user wants geometry created that isn’t there.
If the cushions and the base are a single object rather than two cleanly separate ones, and that hole is the result when you split the cushions off, then you will have to manually create that geometry in some fashion. If you desire there to be some sort of detail there, then you will have to sculpt that detail manually. Again, Zbrush can’t guess at how to create something that isnt there.
First, I would duplicate the original mesh into a duplicate subtool. The original will remain unchanged, and the source mesh for projecting any lost detail. From the duplicate subtool, then split the the cushions off into yet another subtool. Fill in the holes on both objects, and sculpt them into desired shape.
You may find this easier to do at low poly rather than high–more efficient control with just a few verts rather than millions. In which case Zremeshboth the Base and cushion subtools into low poly objects with decent topology. ZRemesher, unlike dynamesh, will not fill in the holes. You can then fill in that geometry and shape it as desired, then subdivide both the base and the cushion subtool back up to high res, and project any lost detail from the original to each in turn.
Again, this will only project detail that was there in the first place. If you want there to be some sort of detail in the portions that you have created, you will also need to create that detail manually.