This is very simple but it always works for me. As soon as I notice the stain (usually while I'm still wearing the t-shirt/dress/garment) I get a kitchen wet-wipe (the ant-bacterial ones for wiping and cleaning kitchen surfaces) and rub the stain from the top of the garment and from underneath the stain as well until the damp looking patch is much bigger than the original and you can't see the original stain in the damp patch any more. Then I just let it dry. Most of the time the oil stain is completely gone by the time it dries and on the odd time when it is still slightly visible it washes out during the next laundry without any extra fussing about.
ThriftyFun is one of the longest running frugal living communities on the Internet. These are archives of older discussions.
After I washed my t-shirt, there's always a stain on it. I'm not sure what it is but it looks like (food) oil stains. I compared it to one of my shirts that got (food) oil stain and it looks exactly like the ones I wash (same stains).