AFAIK Bash does that by default too (at least it's been the case on my Debian setups for
years). It also works with git for example, not just with its subcommands but also with your commits, tags, branches, remotes, etc.
Many Debian packages comes with a completion script for Bash so you get it when you install them :).