This appears to be an oversight. My guess is that the optional userdata arguments in the Lua versions of playdate.sound.sampleplayer:setLoopCallback() and setFinishCallback() were added after the initial spec, and that the C versions were never revisited for parity.
I opened up this feature request in hopes of getting this resolved.