First off there are "games" and there are "emulated games". As in a legitimate pc release or arcade games. Most pc games support some sort of force-feedback and/or xinput rumble by default. Zero arcade games support force-feedback because that's a Microsoft thing. The exception being, of course a few very modern games that just use a usb interface, but even then they usually use some kind of proprietary board to prevent piracy.
Arcade games usually directly drive a motor or a series of motors via an interface board... depending upon the physical hardware setup, what the game sends to a motor(s) won't necessarily translate well to direct-x, which has you define a direction in space, a strength and a duration, as opposed to arcade interfaces that just send a command to throw positive or negative voltage to a particular motor at a certain strength. So there is a bit of crafting and artistry involved. Frankly the guys that did the force-feedback for model 2 and supermodel are far better at this than me.
The few pc games that don't support force feedback have to be hacked.... it's as simple as that. Myself I read memory locations that give me some values in regards to where the car/player is and what they are doing and send certain effects based on the situation. It tends to work well for simple arcade racers and some lightgun games but it gets infinitely more complex the more advanced the game is.
Then there is rumble, and true force-feedback. Atm Outrun FXT and my other projects use canned effects to rumble wheels and gamepads.... true force-feedback is quite difficult to do without a good understanding of physics and full access to the physics of the game. In terms of learning how to do it... and this is the main reason we don't see more people doing it... you have to figure it out. While code instances and a variety of functions are well documented, how to use them to create a desired effect isn't.... you need to either have experience in the game industry, or just muddle through like I do.
So to summarize it's hard to add force-feedback to pc games because you have to find memory locations and craft effects from scratch. It can be had to add force feedback to arcade games because of the translation process from direct board drive based commands to physics based commands. Both are difficult in general because force-feedback examples are hard to come by on the internet.
Even ignoring all of that you've got to understand that I'm a bit of a nut, as are all the people that obsess over force-feedback. Most people don't care enough to worry about it, including a number of emulator developers. It's "low priority" as they say.