It is important to note that this method only works with blocks that can be moved by pistons, and more importantly, most explosions can cause blocks and their items to be destroyed entirely, making it impossible to get them back. The exception to this are TNT blasts, where they drop all blocks broken as items as of Java Edition 1.14.
Blocks cannot just exist outside the block grid. However pistons appear to do this all the time. Actually, the blocks to be pushed are deleted, then moving piston is placed at the destination, then play the animation of blocks moving to give a sense of blocks moving.
This "phantom" block has some interesting properties. It has a blast resistance of 0, and can't be broken by tools, but it can be broken by an explosion, after that it will drop the same things the block it replaces would drop if broken by explosions. Thus, blowing up a moving block greatly increases efficiency.
Since 19w11a, the usefulness of blast chambers has increased greatly - as blocks destroyed by TNT now have a 100% drop rate. Motion still reduces blast resistance of blocks though, so the classic blast chamber design yields more blocks broken per TNT. It may also be still beneficial with other explosion sources - Withers, Ghasts, etc.