middleinfield,
You ain't alone in this. See it alot in fact. Its all mental and usually it's how you are appraoching the at bat that is the issue. I'd bet most of your swings are almost defensive in nature.
In the cage, you are expecting every pitch to be a hittable and are mentally ready to swing at each pitch. You are saying "yes" to every pitch and are in the attack mode...you're ready to hit because you are expecting to hit.
Come game time many players change their mental approach and are waiting to see if a pitch is good. They trust the machine/coach in the cage to throw strikes but not the pitcher in the game. They are trying the "no, no..yes" approach and are late on everything if they hit at all. They are waiting for the pitch to "prove itself a strike" before being ready mentally to swing.
Be thinking "yes" on every pitch even before you see it. Easy to go "yes,yes..no" but almost impossible to do "no,no...yes" with a swing. Easy to stop a swing but very hard to start a swing and catchup. You have to be aggressive as a hitter but it has to be controlled aggression. Know your hitting zone and attack the ball; also with 2 strikes you'll hear "protect the plate"...be careful and don't get passive because with 2 strikes that is the time to be aggressive and get the bat off your shoulder. You can't protect if you ain't ready to swing.
Remember you are striding to see the ball not to commit to swinging. If you stride, early is alot better than late. Good luck.