Assuming you are talking about spine-c and an integration with a C engine, we batch geometry on the CPU and send that to the GPU each frame.
While GPU skinning could be implemented, it hasn't shown much improvement over CPU side skinning, mostly due to the fact that it breaks batching (submission of uniforms for bone matrices). This can be fixed if you have knowledge of the full frame setup, but alas, no engine gives us that insight, at least not in a generalized way.
Also, mesh deforms are quite hard to do on the GPU efficiently: many of the engines we target don't give us the flexibility to submit custom vertex attributes needed for this. And again, you run into batch breaking issues when doing the deforms on the GPU.
That being said, the runtimes are open source, and the rendering parts are generally simple enough to customize for your scenario so you can do GPU side skinning without breaking batching.
We have an engine integration guide for spine-c here, which should give you a better idea how things work under the cover: Spine-c Runtime Documentation