One more alternative would be to split your image into multiple images - one for each shade of grey - and then process them in your game.
My personal choice would be to convert/dither your tiles outside of Playdate, as you have more control. I do it using (image)magick on the command line, as part of my build process, though I appreciate that might be seen as a bit hardcore.
If you have any preference for tools or apps, let us know and we can help more.
Oh, I missed that this was a feature request thread
I'll add my +1 to both
I asked about this early on at Discord (direct link) everything is built around 1-bit conversions at compile time, so it's not possible. But some additions are being planned (see the following comments at the above link)
My workarounds involve splitting my image into one layer per greyscale (for my stages) and using (image)magick to process RGBA into different dithers (for my cars).
I'd also love this and have asked about it at Discord (direct link) but I don't believe there was an official response to it.
Currently I do some runtime dithering processing of 1980 frames for a sprite, which takes a second or two. I'd prefer to do it to a full image and then use that image as the source for an image table to create a sprite out of it.