Well you can still divide the work among many workers, you just need to incur the cost of copying/splitting the buffer before you start sending them off.
In most cases you know how many workers you want at the start of the program, so that cost of splitting/merging only happens once (and you can do that splitting/merging in a worker to avoid hanging the main thread) and then you can pass those chunks around freely.