First. Off, if it can walk in the way we can, then dancing and such is also possible almost as a free byproduct.
You can do this, but there is a high minimum price floor.
Here is the thing why it is expensive: As a human walks, much of the time one foot is off the ground. But during this time, we are NOT balanced over the one foot that is in ground contact. In fact, we almost never balance over it. We fall forward and place the other foot on the ground ahead of us to break the fall and then repeat that cycle.
If we were balanced (that means with zero horizontal force applied), we would not move. Isaac Newton explained this: To move our body forward, we need a backward force. Remaining balanced can’t work. Making turns and stopping also require that we generate a horizontal force while supporting our weight with only one foot. Not just horizontally. We can and do also apply a torque to rotate our body while one foot is supporting our weight. This is easy; even older and very unfit humans do this.
Here is why it is expensive. While you can easily compute the average speed of, say, a hip joint. Let’s say it is only 30 degrees per second. A cheap serial-servo can do that. But here is the key— the joint's torque vs time curve has to be VERY FAST if the robot is to keep balance. Maybe the torque changes direction every 20 milliseconds. You CERTAINLY need to be able to change the applied torque at about 50Hz control intervals.
Try this experiment: Stand on one foot with the other only 1/2 inch off the floor. Your ground-contact leg will be almost shaking maybe 20 corrections per second, but your average joint speed is ZERO. Nothing moves, but you need to apply horizontal focus very quickly.
So hobby servos are out of the question as they can only be commanded to positions and not to some applied torque, and with 50 Hz PWM they are far too slow to react.
Serial servos are the same way. You send a serial command to, in effect, update their PID constants and even with a fast serial link this is too slow to maintain balance.
Both kinds of servos are controlled by position and you MUCH have control over torque even at zero RPM you still need to control torque and update it about 50 times per second.
EVERY humanoid robot ends up using the same kind of motor, and this is not by coincidence. They all use 20 to 40-pole three-phase motors where the software has direct control of three H-bridges and also has high-quality rotary encoders on BOTH the motor and the joints. Today, EVERY walking robot uses this.
Prices for these motors start at about $60 and go up quickly to well over $350.
What many people miss is that a robot controller is working with high-bandwidth torque vs. time. Typically, a nested torque and position PID loop. Basically, you need a very fast control loop if the humanoid is not to fall over. Once you have this, dancing and jumping is easy.