When your shoe hits the ground with the typical heel strike, the impact force spikes from zero to a peak at 50 milliseconds, drops slightly, and then climbs to a new peak between 100 and 250 milliseconds. In order to provide a rebound effect, the landing surface must return the energy before the shoe leaves the ground AND before the shoe leaves the optimal position to receive the energy.
When you run on solid rock, steel, or concrete, there is virtually no give, so almost all of that energy is immediately transferred back into your shoe.
When you land on grass or sand or soft dirt, the landing surface compresses and absorbs the energy, leaving a divot in the sand and/or pushing the sand outwards so the energy is not returned to the shoe. Instead, the energy is used to move the sand.
When you land on hard dirt, the energy is mostly returned, but a little slower, which results in the shoe being out of the optimal position to capture the return of available energy.
In a perfect performance shoe, the energy from the impact on concrete would be captured in the foam/carbon plate and transferred back to your foot at the optimal time to provide a rebound effect.
In most training shoes, the foam doesn't expand fast enough after the impact to provide a rebound effect. Your foot is already off the ground or past the point where it can get a rebound effect.
tl;dr Part of the energy is absorbed by the dirt/grass. The energy that's returned comes back too slow to provide a rebound effect because the shoe has moved out of position to receive it.