結論から入れば

(insert-file-contents "/dev/stdin")

read-from-minibufferを使って一行ずつ読み込む方法は良く知られていますがこれが最も簡便ではないかと思います。ちなみに標準入力はファイルなのでfind-fileすらできてしまうのですがあまりオススメはできないです。

これはちょっとしたコロンブスの卵でした。

使用例(cat.el)

(with-temp-buffer
  (insert-file-contents "/dev/stdin")
  (princ (buffer-string)))
$ emacs --script cat.el < hoge.txt

すべてのaAに置換する(a.el)

(with-temp-buffer
  (insert-file-contents "/dev/stdin")
  (replace-regexp "a" "A")
  (princ (buffer-string)))
$ emacs --script a.el < hoge.txt

ファイルを一行ずつ読んでリストにしたい場合

(let ((l (with-temp-buffer
           (insert-file-contents "/dev/stdin")
           (split-string (buffer-string) "\n"))))
  (do something on l))

とすれば良い。

スクリプト言語だと行単位の処理が普通ですが Emacs の場合はバッファに吐いたほうがいいですね。

Elisp は処理はともかく起動(emacs --script)は速いし正規表現もデフォルトで組込まれている(使いやすいとは言わないが)ので、豊富な編集コマンドを使えば直感的にスクリプトが書ける(かもしれない)。