I have hickory cabinets that I bought with the intent of staining a moderately dark reddish brown to go with adjacent woodwork, but found that the wood isn't accepting the (regular oil-based) stain except in the softest parts of the grain; it just all wipes off leaving minimal color. Sanding a test surface with 80 grit (orbital sander) helped a little bit but not enough to get a result I like. Are there techniques to open the grain (maybe water?) and get it to accept the stain better? Or do I need to switch to dyes or something?
It's not ideal but this is the type of situation that might call for a coloured finish. The poorly-named "gel stain" is one of those*. I'm not a fan of them myself, and many finishers are against coloured overcoats in principle (when the task is to make the wood significantly darker), but "gel stain" is undoubtedly a good product to fall back on if you're trying to colour wood that is accepting real stain or dye unevenly.
Do be aware though that if you wear through, scratch or scrape off any finish like this it's very obvious because the damage reveals the paler wood underneath (and doing touchups is tricky).
Or do I need to switch to dyes or something?
I would normally say they're well worth trying because colouring the wood and then applying a topcoat/final finish should always be considered preferable to using a coloured finish.
However, because you're doing cabinets you bought and not working on something you made yourself a dye may not be the best call here because you won't have any scraps of the same wood to test finishing options on. If you try dyeing and it doesn't work right it takes a lot of sanding to get back to bare wood because they penetrate wood much better than oil stain.
*Despite being called a stain by the makers it's basically coloured oil-vased varnish (usually polyurethane) thickened to a soft-gel consistency.
I've had really good results now with a mix of advice from (now-deleted?) comments and my initial ideas. I sanded the easily sandable surfaces with detail and orbital sander, then wiped the wood down with a cloth soaked in hot water, leaving the wood nice and wet. After it fully dried, I applied the stain as a thick coat, rather than just wiping in what would would absorb immediately, and waited 30-45 minutes before wiping the excess off, but I could already see that it was being absorbed much better than before.