A probably very naive question: why not pistons?

Because there’s a much, much simpler and easier way:

1. Connect the two ships

2. Connect the liquid valves from both cryo tanks together.

3. Spin the ships about the short axis

4. Open the vent valve for the cryo tank to receive liquid.

5. Lock closed the vent valve for the cryo tank to supple liquid.

Steps 2, 4 and 5 are how you normally transfer cryo fluids between dewars on earth. You just to create pseudo gravity / acceleration in the body frame of the ships to make it work in space.

NASA has used tanks with a bladder. Pressurizing gas on one side of the bladder, all fluid inside. Cold liquids (methane in SoaceX case) means materials are crucial. A big piston is heavy and could jam.