You just tune the AI of that particular match that way.
Like for example say you want to teach throws. You basically have a tutorial where the AI like blocks 90%+ of your attacks but doesn't tech throws. You also have a description at the start of the Tutorial:
"Character X is a master of defense but because he spent most of life practicing how to block he may be weak to other forms of indirect attacks. Figure out a way to defeat him."
At this point you will soon realize that attacking isn't going to defeat him but when you do a throw it's super effective (like it does more damage than normal just for that fight). You do it a few more times and win the match.
As far as how to teach people how to use mids against someone who ducks a lot that's pretty simple... you just have an AI who ducks a lot (even if you hit him with mid attacks). And you structure it so that this fight is unlocked right after you unlock some mid hitting moves.
There's a couple of issues I have with this, but they're solvable problems. One is that the challenges as presented aren't terribly interesting, but I think that's largely solvable by better presentation (until you get into more interesting challenges, anyway). The other is that I think that you would want to minimize the amount of exposition on game mechanics. It's not that players are stupid -- I think they would just rather be doing things instead of reading (or watching) them.
I'm wondering if it would work better under the structure of a single player action game. For example, you would have an enemy that has a really powerful attack that absorbs hits and breaks guard, but can be dodged and then you can easily retaliate. Or if you had an enemy that would block all of your attacks but then would have a canned response (a fast high, or they always go for a safe mid that's high damage but slow, etc.). And then as the game goes on, enemies would either have less time in their state or they would mix up between different options and you would just build from that.
One other thing -- and this is something that could be applied to fighting games now rather easily -- is to make things more obvious visually. Color code hit effects to show what you get on hit (blue = minor advantage, green = major advantage, red = guaranteed followup), have special animations for moves that are super unsafe on block or give advantage on block (like the stagger animation a lot of lows in Tekken have), super long hitstop on big counterhits (like in SFA3 or MBCC), and so on. Fighting games are generally fairly bad at communicating their state, especially if you have no prior experience with them. How can you tell how plus or minus a move is on block normally? People experienced with the genre can figure it out with some testing (buffer move tests, jump tests, etc.) but you usually can't tell by looking -- but how would someone new ever figure it out?
It's about fucking time. For too long people have been making claims on mere feeling "man this lags take my word for it!" or broken methodology "I compared the output to a laptop LCD".
Human perception is flawed, which is why you take direct empirical measurements.
Man I always hated people popping off about monitors lagging, especially if the display was previously tested with something like a high-speed camera or a Leo Bodnar (the device Arturo is using) to have a damn good idea of just how much the display actually lags. I think that's one of the sneaky important things the Cannons did with Evo, with establishing a couple of monitors as known to have low and a very specific amount of lag. So now any event using one of those monitors can just tell players that it's already been tested and they can STFU.