If the disk is failing anything you do that reads or writes it could cause data loss. Even having it plugged in and powered potentially could. It depends on what component of it is failing.
That being said, fsck is pretty safe. It’s the equivalent of chkdsk in windows, it looks specifically at the filesystem for things that may have gotten screwy.
ddrescue/gddrescue is your best bet for recovery. It can detect bad blocks and skip them, and it has some p robust resuming capabilities if your disk locks up while.its running. I usually use it to clone entire physical disks to another disk or an image file that can be mounted. I don’t know if it can be used to grab specific files, I’ve never tried.
If it was me, I’d take the disk out and let it cool to room temperature. Then I’d ddrescue the whole thing, with resume turned on, to an image file. Then I’d run fsck. If fsck finds and recovers filesystem issues, I’d put it back in the pi, continue using it, and start doing regular backups of important files via a cron task.