You must give either an absolute or a relative path to your eshell command,
$ cat ./some-file # yey!
$ cat /another-file # yey!
$ cat some-file # fail :(
Otherwise, the company-files--grab-existing-name function returns nil.
You can edebug the said function and check that that is the case.
Check and update the company-files--regexps to support the ...
Look into lsp or eglot. They provide completion candidates for company.
Personally, I used eglot now with vertico completion and it "just works" since i plumbs iself into completion-at-point functions.