What's amazing is you can now buy a standard servo on eBay for 99 cents free shipping.
And one with metal gears for not much more. Point being I don't think the electronics inside cares whether the gears are plastic or metal - relevance of this later.
There is no shortage of resources, references, articles, etc. about servos and how they might be used in a train layout. Though we still have no idea what kind of train animation the OP is attempting with an Arduino, the application of the modified-servo (CRS) is less well documented. Hence, I've put together a few more thoughts on this.
To recap, a standard servo (shown on left) consists of 3 main components. It's a (1) DC gearmotor (DC motor + gears), (2) angle sensor (typically a potentiometer), and (3) electronic guts which "knows" how to decode Arduino servo.write commands to set the angle of the output shaft between 0 and 180 degrees. The CRS modifies this by making some minor electrical and mechanical mods; again, many online and youtube tutorials on how to do this...or most robotics/Arduino stores sell the modified servos. The modification is really to remove the mechanical angle feedback to the electronics so that the electronics always thinks the output shaft is at the midpoint (90 degrees). So when you command servo.write(0), the electronics drives the motor CCW but the sensor always says it's still at 90 so the motor spins in vain forever. Likewise, command servo.write(180) and the electronics drives the motor CW but the sensor always says it's still at 90 so again it spins in vain forever in the opposite direction.
So I'm claiming the electronics to make a DIY CRS with your own DC gearmotor is as little as 99 cents! Likewise, the electronics doesn't "know" it's driving the integral miniature DC motor that comes in a standard servo. In other words, I'm suggesting for 99 cents, you can "throw away" the DC motor and gear mechanism - hence if doing this, I'd experiment with a plastic-gear servo.
So why do this? First, as mentioned previously, most standard servos spin REALLY fast. Most servos have the so-called 60 degree spec which, oddly enough, is the time it takes to spin 60 degrees. A typical servo might spec 0.1 seconds. So this would be 0.6 seconds to spin one revolution (not that a standard servo can make a full rotation) or 100 RPM. I'm sure there are train layout animations that rotate 100 RPMs but I'd say this is a bit fast; the Newsstand dog running around the hydrant may even be faster than 100 RPM! Yes, you can slow down the speed by changing the servo.write(x) command to something other than x=0, x=90, or x=180. What actually happens when you do this and the fine-print is a subject for a separate discussion.
The point is you can get DC gearmotors in the, say, 10 RPM range for a couple bucks that might better suit train type animations. I showed some examples in an earlier post.
The other consideration with most standard servos is the common ear mounting method may be awkward to mate to your specific animation. Likewise the set of mounting arms that snap on the knurled output shaft may or may not play well. To be sure, there is a whole after-market of plastic and metal arms, extensions, you-name-it that can make the job easier.
In my experience making custom one-off model layout animations, much more time is spent designing, prototyping, fiddling, adjusting, and fussing with the moving parts or mechanism...as opposed to the electronics. Obviously guys have been using DC gear motors since day 1 to make clever animations...simply adjusting the DC voltage to get the animation just right. It's been more work to orchestrate animations where the motor runs in both directions in a complex timed sequence. This is where the Arduino is going to shine.