In a pool, the pool server will hand out unique headers to each worker/request, by using the extraNonce and rehashing the tree, to prevent duplication of work and get better odds of finding a valid block.
So is this what a `share` is? An attempt to solve a block with a unique header?