こんにちは
Point on Surface は、 QGIS の内部で GEOS というライブラリの機能を
呼び出すことで実行されています。
最終的には GEOS の以下のファイルで計算されています。
(実際にはドーナツ状のポリゴンの場合やマルチポリゴンを考慮してもう少し複雑ですが、)
おおまかなアルゴリズムとしては、ポリゴンの最上点と最下点の Y 座標の平均(中心線)の
両サイドからそれぞれ最近点を探し、その2点の Y 座標の平均を計算します。
その平均の線でポリゴンを切ったとき、大きな断面となる部位の中心点を求めているようです。

なぜ、単純にポリゴンの中心線を使っていないのかはよくわかりません。
こちらのアルゴリズムの方が、頑健なのかもしれません。