原因は、拡張子を配列で指定していないことでした。
ファイル選択ダイアログ表示する際に、選択対象をPDFファイルだけに制限しようと考えて、以下のような誤ったコードを書いていました。
dialog.showOpenDialogSync({
filters: [
{name: 'PDFファイル', extensions: 'pdf'} //これは誤りです。
]
});
しかしながら上記のコードでは、以下の画像のようにPDF以外のファイルも選択候補になります。

期待したのは、以下の画像のようにPDFファイルだけが選択候補となる事です。

正しくは、以下のようにextensionsに配列を記述すべきでした。
//これは誤りです。
dialog.showOpenDialogSync({
filters: [
{name: 'PDFファイル', extensions: ['pdf']}//正しくは、このように配列として渡します
]
});
今から考えると、extensionsという言葉自体が複数形なので、分かりそうなものですが、作業中は気づかず少し困っていました。
['jpg', 'jpeg'] のような、複数の拡張子を持つファイルであれば、もっと意識したかもしれませんね。
同じようにお困りの方のお役に立てれば幸いです。
公式ドキュメントを読んでみると、他にありがちなミスで、'pdf'と書くべきところを*.pdfと書いてしまったり、.pdfと書いてしまったりするケースが紹介されていました。
https://www.electronjs.org/docs/api/dialog
The
https://www.electronjs.org/docs/api/dialogextensionsarray should contain extensions without wildcards or dots (e.g.'png'is good but'.png'and'*.png'are bad). To show all files, use the'*'wildcard (no other wildcard is supported).
extensions配列は、ワイルドカードやドットは含めないでください。(例えば、
'png'は正しいですが、'.png'や'*.png'はダメです)。全てのファイルを表示するには
'*'ワイルドカードを使います。(他の種類のワイルドカードは、どれもサポートされません)