HSPの命令dirlistが内部で呼び出しているWinAPIのFindFirstFileなどはMAX_PATHで制限がかかっていますので不可思議でもなんでもないですよ
https://msdn.microsoft.com/ja-jp/library/cc429233.aspx?f=255&MSPPError=-2147217396
上記関数では結果がWIN32_FIND_DATAという構造体に書き込まれますが、そのWIN32_FIND_DATA構造体を見ると
https://msdn.microsoft.com/ja-jp/library/windows/desktop/aa365740(v=vs.85).aspx
TCHAR cFileName[MAX_PATH];から分かる通り、結果はMAX_PATHで制限されます
直接呼び出して確認しましたが、結果はフルパスではなくファイル名単体で返されましたのでファイル名が260字を超えてもNGとなります
この制限を無くすには、Unicode版の関数を呼び出して下さい
また、HSP3utfも現時点ではMAX_PATHを260と定義していますのでHSP3utfランタイムを使用しても無意味です。
属性の指定などは面倒なので最低限のサンプルですと
#include "kernel32.as"
#define MAX_PATH 32767//これは文字数でバイト数では無いので注意
#define INVALID_HANDLE_VALUE -1
sdim LPWIN32_FIND_DATA, 11*4+(MAX_PATH*2)+14+2
sdim findFileName, (MAX_PATH*2)+1
filename = "\\\\?\\\\C:\\Windows\\*.*"
FindFirstFileW filename, varptr(LPWIN32_FIND_DATA)
hFind = stat
if (hFind == INVALID_HANDLE_VALUE): dialog "1つもファイルが見つかりませんでした"
repeat
memcpy findFileName, LPWIN32_FIND_DATA, (MAX_PATH*2), 0 ,44
findFileName = cnvwtos(findFileName)
mes findFileName
FindNextFileW hFind, varptr(LPWIN32_FIND_DATA)
if (stat == 0): break
loop
FindClose hFind
stop
これで恐らく260字以上のファイル名(フォルダ名)も検索できます。試していないので出来なかったらすみません