Managing prefabs and make them pool is a major and necessary module of each game.
As instantiating and destroying calls are really expensive at runtime. So, due to this, it is better to pool instantiated objects and recycle them after use, for future.
In Unity projects, programmers have to instantiate and destroy various GameObjects at runtime like enemies, particles, powerups, health boxes etc. So, it is better to pool them and recycle them.