最も近いのは 'by a hair’s breadth' でしょう。文字通り「髪の毛一本分の差」という意味で、勝負や結果がごくわずかの差で決まった時にぴったりです。例えば、'He won the race by a hair’s breadth' と言えば、「紙一重の差で勝った」という感じになります。
もう少しカジュアルな場面なら 'by a whisker' もいいですね。これは猫のひげ(whisker)ほど微妙な差というイメージで、スポーツの試合などでよく使われます。'The team escaped defeat by a whisker' と言えば、「チームは紙一重のところで敗北を免れた」という意味になります。
日常生活で使えるシンプルな表現なら 'very close' や 'just barely' も便利です。「試験に紙一重で合格した」なら 'I passed the exam just barely' で十分伝わります。微妙なニュアンスの違いを楽しみながら、状況に合わせて使い分けてみてください。
ネットスラングとしての'o r z'は、人がひざまずいて絶望や落胆を表している様子をアスキーアートで表現したものです。頭の'o'と体の'r'、ひざまずいた足の'z'で構成されていて、特にネットゲームや掲示板で失敗したときやショックを受けたときに使われます。
最初に見たときはただの文字列に思えたけど、使い込むうちにこれほど感情を的確に表現できるアスキーアートも珍しいと感じるようになりました。特に'Minecraft'で大事なアイテムを溶岩に落としたときとか、'Apex Legends'で最後の一撃を外したときなんかは自然と'o r z'と打ちたくなりますね。
最近では派生形もたくさんあって、大文字の'O R Z'だとより深刻な絶望を、'or2'とか'orz3'みたいに数字を入れるとバリエーションが生まれます。ネット文化の進化を感じさせる面白い表現です。
言葉を直訳すると「店の入口に掛かっている暖簾に腕で押し当てる」という光景になります。
僕が英語話者に説明するときは、まずその視覚イメージを共有します。暖簾は向こう側にいる人を遮る柔らかい布で、腕を押し込んでも相手は動かず、結果として努力がほとんど意味をなさない状況が想像できます。そこから意訳として「a futile effort」や「an effort that produces no result」という説明に繋げます。
具体的な日本語の用例を見せると理解が早いです。例えば「彼に頼んでも暖簾に腕押しだ」は「Asking him is a futile effort; he won't respond」と訳せます。こうした順で視覚→意味→英語訳を提示すると、ニュアンスが伝わりやすいと感じます。