The first raid I did was against a Magikarp and I handled that without issue and among my rewards was a Fast TM manual that I’ve been holding onto. Since then, I’ve done maybe 2 dozen other raids and not received another TM.
Are TMs extremely rare drops and I got lucky? Or are they restricted to 1 at a time, similar to daily raid passes?
According to Pokémon Go Hub, in order to receive a Fast TM from a raid battle, you need to be trainer level 15 and to receive a Charged TM, you need to be level 25. These are the only requirements.
That is, you will have at most a 12.5% chance to receive either type of TM from a Tier 5 raid and as low as a 2.5% chance to receive one from a Tier 1 raid.
Prior to raid reward rework:
As mentioned above, the drop rates for these are very low, but your odds are better if you take on a more challenging raid. Based on a small study done in this thread, the odds for obtaining at least one TM from a raid range from 11% at Tier 1 to 14% at Tier 2, to 40% at Tier 3, and up to 64% at Tier 4.