CentOS-6.7, ubuntu-15.04 のそれぞれで以下のコマンドを実行すると、manページ(セクション1のみ)の概要一覧を意図通りに表示できます。

(ubuntuでの実行例: manpage-jaをインストールしているのでところどころ日本語で表示されています)

$ for filename in /usr/share/man/man1/*.1.gz; do cmd=`basename $filename .1.gz`; man -f $cmd; done
2to3-2.7 (1)         - Python2 to Python3 converter
2to3-3.4 (1)         - Python2 to Python3 converter
2to3 (1)             - Python2 to Python3 converter
411toppm (1)         - convert Sony Mavica .411 image to ppm
Mail (1)             - send and receive Internet mail
...
zless (1)            - 圧縮されたテキストを CRT で見るためのファイル閲覧フィルタ
zlib-flate (1)       - raw zlib compression program
zmore (1)            - 圧縮されたテキストを CRT で見るためのファイル閲覧フィルタ
znew (1)             - .Z ファイルを再圧縮して .gz ファイルにする
zsoelim (1)          - satisfy .so requests in roff input

これがfreeBSD-10.2-stableで実行した場合、全く想定外の挙動をしました。

$ for filename in /usr/share/man/man1/*.1.gz; do cmd=`basename $filename .1.gz`; man -f ${cmd:-}; done
c2ph(1), pstruct(1)      - Dump C structures as generated from "cc -g -S" stabs
biff(1)                  - be notified if mail arrives and who it is from
ctm_smail(1), ctm_dequeue(1), ctm_rmail(1) - send and receive ctm(1) deltas via mail
forward(5)               - mail forwarding instructions
from(1)                  - print names of those who have sent mail
...
...
[: nothing appropriate
...
...
tblgen(1)                - Target Description To C++ Code Generator rst2man-indent-level 0 1 rstReportMargin \$1 
[an-margin] level 
[rst2man-indent-level] level margin: 
[rst2man-indent
[rst2man-indent-level]] - 
[rst2man-indent0] 
[rst2man-indent1] 
[rst2man-indent2] . 1 INDENT RS \$1 nr rst2man-indent
[rst2man-indent-level] 
[an-margin] nr rst2man-indent-level +1 . UNINDENT RE rst2man-indent-level -1 
[rst2man-indent
[rst2man-indent-level]]u
tcsh(1)                  - C shell with file name completion and command line editing
xstr(1)                  - extract strings from C programs to implement shared strings
DynaLoader(3)            - Dynamically load C libraries into Perl code
ExtUtils::CBuilder(3)    - Compile and link C code for Perl modules
ExtUtils::Constant(3)    - generate XS code to import C header constants
ExtUtils::Constant::XS(3) - generate C code for XS modules' constants
ExtUtils::Embed(3)       - Utilities for embedding Perl in C/C++ applications
ExtUtils::Miniperl(3)    - write the C code for perlmain.c
ExtUtils::ParseXS(3)     - converts Perl XS code into C code
Fcntl(3)                 - load the C Fcntl.h defines
List::Util::XS(3)        - Indicate if List::Util was compiled with a C compiler
XSLoader(3)              - Dynamically load C libraries into Perl code
c2ph(1), pstruct(1)      - Dump C structures as generated from "cc -g -S" stabs
--More-- (byte 2220)

man -f としているだけなのにどういうわけか途中でページャ(more)よるユーザー入力待ち状態になってしまいます。

確かにfreeBSDmanを見るとman -fwhatis(1)コマンドを実行し、そのwhatisは環境変数PAGERの影響を受けると書かれていました。ページャデフォルトがmoreであるとも。

しかしman -f を単体で動作したときにはページャ表示に切り替わってユーザー入力待ちとなるような動作は確認できませんでした。

$ man -f c2ph
c2ph(1), pstruct(1)      - Dump C structures as generated from "cc -g -S" stabs

コマンドの仕様について分かってないとか、実行コマンドの書き方に問題があるとか、そういうことだろうと思って調べてみたものの理解が及びません。ご教示お願いいたします。