This actually works the same way on Linux as on macOS. You're simply using a different shell on Linux than you're using on macOS, and that's why it appears to be different for you.
Instead of using bash, which you're running right now on macOS, you should instead start up tcsh. This will give you the behaviour, you're looking for (i.e. ctrl-d for file expansion).
You can simply start Terminal.app and run:
to test it out.
If you like it, you can open Terminal.app Settings in the General tab, and set the shell to open with to: