You can do what you want with plain resistors, no need for a voltage regulator.
Fans don't typically consume a lot of power, so you're not really making the circuit much more efficient by using a buck converter.
The downside is you need to pick the resistor values for each fan, the values will depend on the fan's current rating.
Let's make an example, let's say you have a fan which says 12v 0.25A on it.
You can use Ohm's law : voltage = current x resistance to figure out the fan's internal resistance at 12v : R = voltage / current = 12v / 0.25A = 48 ohm
Now let's say we want to make the fan "see" 9v instead of 12v. In order to achieve that, we need to add a resistor in series with the fan that would drop 12v - 9v = 3v.
What current would we have at 9v? Again using Ohm's law : voltage = current x resistance so Current = Voltage / Resistance = 9v / 48 ohm = 0.1875 A
Now we must pick a resistor that at 0.1875 A will drop 3v across it : Voltage = Current x Resistance => Resistance = 3v / 0.1875A = 16 ohm
So I would put a 15 ohm resistor in series with the fan, and the resistor would drop around 2.8v, making the fan run at around 9.2v and lower rpm.
In the off position, you simply disconnect the voltage wire.
In the low position, you have the resistor in series
In the high position, you short the two terminals of the resistor, making it a 0 ohm resistor
You can use a slide switch with two independent sides - on one side you have the voltage on/off , on the other side you have the resistor added or not
example DP4T switch :
https://www.digikey.com/en/products/detail/c-k/SS-24E06-TG-5-P/2747191would allow you to use off, low , med , hi - 2 resistors and no resistor value
gonna edit the picture it's not quite right
1a - 2a - 3a ---- 4a - 5a
1b - 2b - 3b ---- 4b - 5b
switch on 4-5 :
ground - 3a --- nowhere
voltage - 3b --- nowhere
switch on 3-4 :
ground - 3a - low resistor - 4a - to fan ground
voltage - 3b - 4b- fan
edit : sigh ... it's not quite right still ... because the resistors are basically in parallel in the picture, figure out a way for one resistor to be disconnected when other is in circuit.
anyway, you get the idea.
You can pick the resistors so that when you're on 3-4 you create a short between 3-4 therefore you short out that low resistor in picture, so the overall resistance decreases. when you slide to 2-3, you short out the med resistor so you have another resistance... and when you're on 1-2 you don't short either resistor, so you have both resistors in series therefore lowest rpm speed.