Your goal in Yoshi’s Island is to help Mario save baby Luigi but the problem is that Mario is also a baby and you have to take care of him. You basically function as a babysitter for Mario which is a great way of re-framing their relationship. I like to think of Super Mario World and Yoshi's Island as the same game but one is as told by Mario and the other as told by Yoshi.
When you get hit in Yoshi's Island baby Mario will fly off your back and you have to go get him again within a certain amount of time. He is flying around in a little bubble crying. If you don’t get to him then presumably bad things we aren’t going to think about happen to him (which is probably why he is crying).
You make a mistake, you enter a fail state, and you can only exit that fail state by doing something harder in order to make up for it. In most games when you take a hit you just try harder to not get hit in the future. But in Yoshi’s Island taking damage is a thing you have to specifically make up for right now. This is a very powerful design pattern. You did something bad, so now you must do something good in order to square it.
Before we talk about that design pattern some more though lets set forth a model for understanding health. As a model it is a simplified version of how things work it isn't going to take into account everything about every health system, nor will it take into account how that system interacts with everything else. Still, this simplified model of health will help us understand how health can work and why this design pattern in Yoshi's Island is so effective. I call this model of health I'm putting forward "Health as a Mistakes Allowed".
The first simplification we are making for the purposes of this model is that the player only takes damage as the result of a mistake. You don't just randomly lose health, you lose health as a result of you misreading an enemy attack, not seeing a trap, or getting overaggressive. A defensive mistake is when you fail to properly protect yourself, whereas an offensive mistake is when you don't take advantage of the opportunity to damage an enemy. Only defensive mistakes can result in damage, and even then, not every defensive mistake will result in damage. Perhaps you did something that left yourself vulnerable to an enemy attack but they didn't attack you. You put yourself in a position where you could of taken damage and there was nothing you could of done about it but the enemy AI didn’t chose to attack for whatever reason. These are still theoretically mistakes even as they go unpunished.
Health then is the number of mistakes you are allowed to make before you have failed. You have 3 hearts and so can make 2 mistakes but the 3rd will kill you. Not all mistakes are created equal though, some enemy attacks will deal more damage. In Mario games falling in a pit will kill you regardless of how many power-ups you have. This means that health isn't simply the number of mistakes you can make but a combination of both the quantity and severity of the mistakes you can make before failing. You can make a lot of little mistakes, a couple big ones or some combination of the two, but at some point you have failed to much and die. Put another way, how much health you have lost a function of is how many mistakes you have made weighted by their severity.
We can use this understanding of health in order to figure out how much damage an enemy attack should do. If how much damage a player takes is a function of how badly they screwed up then how much damage an attack does is in inverse proportion to how hard the attack is to dodge. Easily dodged attacks can do lots of damage, and hard to avoid attacks should do very little. We can add a new complication to that relationship by adding in how hard that enemy should be to fight. Harder enemies will deal more damage even if the attack is just as hard to dodge as one on a easier enemy.
Which brings us to healing. If taking damage is the result of a mistake, then restoring player health is forgiveness of that mistake. You screwed up but you are now forgiven. It was taken off your permanent record, your sins have been cleansed.
In Yoshi's Island though you aren't just healed arbitrarily. Much like taking damage, healing doesn't happen randomly. In Yoshi's Island when you make a mistake you have to get Mario back, and you can get more time on the clock for next time you need to chase him down by collecting tiny stars that populate the levels. Both of these actions require the player go above and beyond what they would be doing if they hadn't made that mistake. You have to catch Mario, or find those stars.
In Yoshi’s Island healing isn't forgiveness so much as it is redemption. It is making up for mistakes though extra effort. By making the player have to earn it the emotional payoff is much higher and that is what makes this system in Yoshi's Island so satisfying. Every mistakes results in a nice mini-arc of failure, struggle, and redemption.
Making the player chase down a crying baby to make up for their mistakes isn’t something every game can do, but the take away is this principle of "extra effort". Don’t put things that heal on the direct path of the player instead put it slightly off the beaten path. Make them have to go exploring, or chase something down in order to earn that redemption and give the mini-story of their failure a satisfying ending.
In the "Health as a Mistakes Allowed" model you take damage because you made a mistake, your health is how many mistakes you are allowed to make, and healing is those mistakes being undone. This is just one of many ways you can view health and a couple implications of it. There is more that can be said about this model (such as how it applies to multiplayer games where the person who is doing the healing isn't the person who made the mistake) and more implications from it, but I'm going to leave it here for now. I hope this gives you a new tool for evaluating and thinking about health systems and what makes them tick.