A pool is basically some grouping. It's kinda vague.
In that figure, the "data pool" is just some set of data while the "instruction pool" is just some set of instructions. The figure means to show that a single instruction and multiple data go into the vector unit at a time, and then that single instruction is applied to each of the multiple data independently.
On the "pooling" design strategy
I clicked the link to "Pool (computer science)", Wikipedia. That article's worded a bit confusingly because it's talking about a design strategy called "pooling" rather than discussing the term "pool" itself.
Pooling is when a resource is collected up into a pool for some reason. Because it's such a vague term, it can apply in a lot of different situations, so it's hard to give a more specific description without overstating it.
But to give a common example, there's thread pooling in which a bunch of threads are kept alive-and-waiting to do jobs. This pattern's often useful when you might have a bunch of little jobs that you want to run on different CPU cores. Then, whenever you want to run a job, you pick an available thread from the thread pool and have it run the job.
In principle, you don't actually need a thread pool; you could instead create a new thread each time you want to run a new job. The problem's that threads can be expensive to create and dismiss, so if you're running a bunch of little jobs, it's often highly inefficient to keep creating/releasing threads.
That said, "pooling" is unrelated to what the SIMD diagram was referring to as a "data pool" and "instruction pool". In that diagram, they just meant that they had a bunch of things data and instructions to use on them, which they vaguely referred to as existing in pools.