Robot Eye mechanism
A while back I made a robot/animatronic eye mechanism, with OpenSCAD:

It uses 4 servos (big blue blocks on the back) to actuate the eyes and eyelids. Both eyes can look left and right independently, and the right eye has an option for a camera mount. For this I modeled the size after the raspberry pi spy camera size. The eyes can't look up and down.
The eyelids are actuated by the other 2 servos. The left and right side are linked, but the top and bottom can be moved independently.
The actual linkages to move them are not rendered, as these were supposed to be linked with some bent iron wire. In hindsight, after actually 3D printing the mechanism, was a bad idea, as it is very annoying to actually mount it in the correct position. The eyelids also have a tendency to slide a bit to the left and right.
The biggest flaw however is that the mounts for the eyelid hinges are quite small and fragile. Sadly one of these broke on the printed version.

The servos I used were cheap, but also loud, so it would be very noticeable every time the robot would blink. I never fully assembled the mechanism however, only the eye servos.

The intended final mechanism would have the spy camera installed on the right eye, then have that be covered with a translucent plastic shell. On the inside of that shell I'd probably have put a paper, or other material, printed with an iris, so it would actually look like a proper eye.
Other Mechanisms
I'm not the only one to do this. Another reasonably popular mechanism is Will Cogley's design. As opposed to my mechanism, his design opts to move all eyelids independent, but connect the eyes together. This also means the eyes can't cross, or adjust based on the distance of the object they are looking at. This is important for any robot that will interact with people, as it looking at the wrong distance can look odd or uncanny.

The center servo used to pan the eyes to me also seemed like it would not fit into an actual animatronic head, but it apparently does, as Will used it for exactly that. I do think this is a good design, as it seems a lot more bulky than mine, and is designed to actually be assembled.
This design, like mine, also allows putting a small camera into the eye. He later makes another mechanism that uses gears instead of linkages to actuate the eyes and eyelids, but it unfortunately loses the bottom eyelids, as well as eye up and down movement.

An earlier design by Will is closer to how I designed my mechanism, allowing independent movement of the eyes, but linking the eyelids together.
Stepper Motors
To try and fix the noise issue with the small RC servos, I've considered redesigning the mechanism to use "28BYJ-48" stepper motors instead, as these are much more silent. (cheap too!) The downside is that they require adding either a homing mechanism, or an encoder to make them move to the right position. They are heavier as well, at roughly 34 grams for the motor, vs about 9 grams for an entire servo.
The steppers are also rather slow compared to regular servos. To move the eyes at the same speed, I'd have to make a special linkage to account for this.
Driving the stepper motors may also be harder, as driving them the intended way with the "ULN2003" transistor array requires 4 pins on a microcontroller, as well as the extra pins needed for the homing or position system. This can be resolved by using another IC to drive the motor, that can be controlled with I2C to toggle pins on and off. It is also possible to connect these stepper motors to a "normal" (bipolar) stepper driver, but I haven't tried doing this. Most guides I've seen on this also modify the motor.
Voice Coils
Unfortunately I don't have a reference for this, or images, but at an exhibition about robots at the Science Museum in London, I recall seeing a robot use what appears to be voice coils for actuating the eyes. I'm not entirely sure how this would work out, but it would definitely be silent, compact, and potentially capable of running open-loop.
Pneumatic
Somewhat surprising to me, but A-Lab uses pneumatic actuators to move their robots. This includes all the head, and thus eye animation.
Our androids are moved by air-pressure systems. To move an android, there are many types of actuators, including DC motors, AC motors, Hydraulic cylinders, pneumatic cylinders and so on. Considering various factors such as practical durability, safety, controllability, and fine control for delicate movements, we were able to identify pneumatic systems as the optimum choice for our products and developed our own, original pneumatic system called the 'Air Performer Drive System (APDS)'
I haven't found a clear image of how they do it, but looking at the descriptions in their catalog, the eye mechanism used is a bit different from the ones described above. Instead of independently moving the eyes entirely, they list a separate degree of freedom as "wide & narrow", which I assume is used to allow them to cross, to account for looking at things at certain distances.
A-Lab also incorporates a camera in one of the eyes of the robot, which can be used via USB.
As to why this was done, I can speculate that this is easier to control than having both eyes independent.
The eyes still pan and move up/down with a single actuator.
For hobbyist applications, I doubt that using a pneumatic system is a good choice, as it's much easier to find electric motors. Pneumatic systems also rely on a compressor, which can be loud.
Shape Memory Alloy
One method of actuation I haven't seen used yet is shape memory alloys, such as nitinol. When heated, nitinol returns to a fixed shape. The actuatos are compact, operation is silent, and can be very fast. It's even possible to do position control with it, without using dedicated position sensors.
What does complicate using these is that actuation is one way. To restore to the previous position, a second restoring force is needed. This can be provided with a second actuator, or a spring.
However, there is likely a reason it isn't used. It being a thermal actuator means it has to cool down before it moves back to its original position, which can be quite slow. Depending on the transition temperature of the nitinol used, it may also trigger when the outside environment becomes too hot. It getting hot (about 90 degrees C) may also be an issue when combining it with 3D printed parts. Nitinol also isn't the cheapest material sadly.
Rest of the Head
Of course, I did plan on making the rest of the head when I was done with the eye mechanism. Sadly it never really got to that point. Will Cogley also made one already. I'd also have to look into how mouth animations would work, if I decide to make it an android. If I can get my hands on to some cheap voice coil actuators, or nitinol wire, I'd also like to try those, to see if they are any good.
References
Characterization, Modeling, and Control of Ni-Ti Shape Memory Alloy based on Electrical Resistance Feedback – Brian Lynch, Xin-Xiang Jiang, Alex Ellery, Fred Nitzsche – October 2014