Personally I've never heard "не хватает один рубль" but definitely many times heard "рубля" instead of "рублей".
To be honest, each time I'm trying to response such kind of questions, I think of "Из заметок о любительской лингвистике" book. I'm not a professional linguist, neither I'm bold enough to call me even an amateur linguist. So be warned, what I'm going to say is just a hypothesis.
I do believe that the reason behind this customary declension is that in phrases like this "не хватает" can be interpreted as transitive verb, and, talking about transitive verbs in Russian, one should remember following:
Вместо винительного падежа дополнение при переходном глаголе может
стоять и в родительном падеже без предлога: 1) если есть отрицательная
частица не
перед переходным глаголом: понял задачу — не понял
задачи; читал роман — не читал романа; терять время — не терять
времени;
Also, it is told that:
При определении переходности/непереходности глаголов необходимо
учитывать и значение существительного в форме винительного падежа —
оно должно называть объект действия.
See, in phrases like "Украине не хватает три миллиарда для расчета за газ" (so it is not only about roubles) numeral is treated - and I'm using treated in strictly customary way))) - like noun. Moreover, "три [чего?] рубля" is treated like a noun.
To illustrate this, we can easily say - "Недостающие Украине три миллиарда придётся где-то поискать", "недостающие два рубля, он, к своей великой радости, нашёл под столом". And participle is a noun modifier.