Resignation is up to them, but they are down by 5 points of material for starters. Maybe they could have played on a little longer to make you prove you can convert, but I don't blame them for resigning here.
Another 'why the heck did my opponent resign' moment

Ah thanks. I thought maybe they saw some specific thing I missed. I have a new rule for myself that if my opponent resigns for 'no reason' I investigate why. Sometimes I replay things and realize I had a good tactic available and never got around to using it.

...I have a new rule for myself that if my opponent resigns for 'no reason' I investigate why...
Good to try and understand the position, but sometimes players will resign the game and leave for reasons unrelated to the objective position. Some examples could be: Tilt, They don't have time to stay and keep playing (perhaps late for something), misclicked the Resign button etc. (In Settings, you can change it to confirm Resign, so that if you misclick, it asks for confirmation before you actually resign).
Most of the time though, people probably just resign because they feel they are losing and just had enough, so they resign and go to the next game or take a break.

Ah thanks. I thought maybe they saw some specific thing I missed. I have a new rule for myself that if my opponent resigns for 'no reason' I investigate why.
That's a good idea, but seriously you should start by counting the pieces.
Even better is to analyze right after the game, when you still remember the material balance (hopefully).

I don't see it reported here, but it's certainly possible to resign by mistake
...
As I did once, I intended to resign in one game (completely reasonably - losing badly), but I had a number of games going...just wrong one. I messaged both players telling them what i had done - so i got two losses and my elo has been dropping ever siince
I don't see any hugely good moves from here. I could have taken a pawn but that isn't THAT big a deal in such a clogged up position. Anyone?