Is it possible to select the faces of the eyebrows and duplicate them (Shift+D) and create a separate mesh for them using the solidify modifier and then make them move with the original faces? The original faces move using shape keys.
Actually, I created shape keys to move the area where eyebrows are. I don’t want to extrude (add vertices) because I feel like the shapes will be damaged. The extruded part has not good shape and the material also isn’t good.
Yes it’s possible , you can use the surface deform modifier to make one mesh stick to another when it’s deformed.
The issue however is that it use binding, so if the face use subsurf, and you lower the subsurf with for instance simplify, you have to re-bind the eyebrows. Or if you have one subsurf level for viewport and another for rendering it will work only in one case. So it works but it has some corner cases.
What I do generally , is to extract eyebrows from the face as you said, this way they keep the same shapekeys as the face, all this is driven by bones so one bone is controlling the face and the eybrow shapes. Then I tweak the shapes of the eyebrowns if needed , or I add more shape to them if needed.
Another way is to have eyebrows as geometry but included in the face meshs : you only need to extrude them manually instead of using solidify. This way you have only one set of shape key to manage for the entire face.