Is there an open, simple, handheld gaming platform that is cheap, and has good documentation so hobbyists and kids can make games for it?
I know people will say pick up a cheap Android phone. And perhaps they're right, but Android is not simple. It has so many things going on that you just can't write a C program and start playing with it. You have to learn a dozen Android quirks and deal with the Android operating system.
Is there something where you can just upload a program to flash and the device just boots into the program and you start playing?
The Panic Playdate isn't entirely open, but there is an excellent simulator, and itch.io support for titles.
+1 for the Playdate. The thing is incredibly friendly to developers and sideloaded games are first-class citizens. In addition to a really pleasant SDK there's also Pulp which is very easy for kids to use to make simple games (and has enough depth to be used to make real games).
https://play.date/pulp/
https://www.lexaloffle.com/pico-8.php
Not open. They specifically asked for open.
You might want to take a look at the Analogue Pocket.
I'd rather suggest miSTer[0], rather than a parasite leeching on its ecosystem.
0. https://github.com/MiSTer-devel/Wiki_MiSTer/wiki
The Game Boy Advance is a fun console to program for. Though you'd need to get a flash cart to easily run your code on it, which isn't especially cheap.
https://www.coranac.com/tonc/text/
http://problemkaputt.de/gbatek-index.htm
Pico-8 or Makecode Arcade are great starting points and can run on hardware easily.
TIC-80[0].
0. https://tic80.com/
Idk if it’s the best recommendation in the space but there are consoles like the Miyoo Mini (and many more) that are capable of running anything from Atari to PSX in the palm of your hand.
You can indirectly target Android / iOS devices using frameworks like https://love2d.org/ - there's apps like Love2D Studio which can launch packaged applications, or you can build a standalone application.
Well, if you don't put too much emphasis on the "hand" part of "handheld", Steam Deck is basically a PC running Linux and you can program it in any language you want.
As a bonus you can gain some muscle by carrying it around.
Alternatively, some of Anbernic's and other similar manufacturers of "retro handhelds"'s machines run plain Linux (usually derived from OpenDingux for MIPS-based devices, but most newer stuff are ported to ARM) with a simple launcher. I have one of the older MIPS-based devices running OpenDingux (GCW Zero from ~2013)[0] and you can use SDL and C/C++ (or Free Pascal in my case). Anbernic RG350 is basically a remake of it (same hardware, just better screen) and there are some variations at a software level (running the same or a similar MIPS CPU). Other devices are based on ARM (IIRC the devices ending in 1 - like RG351/RG351M/RG351P/etc - use ARM with an OS derived from OpenDingux). Note that some use Android, though they also use a different naming scheme (and they mention it).
Sadly Android-based devices are the most common and since they are largely used for emulators, the manufacturers rarely post full tech specs but there are dedicated communities and YouTube channels from where you can find what exactly OS they run and with what architecture.
But all that said, Steam Deck might be the simplest choice (though not the lightest, both in terms of weight and price).
[0] https://img.itch.zone/aW1hZ2UvNjM4NTE4LzQ3MDk2MTguanBn/origi...