As Evil Genius is saying, the (black) system (MS Windows) command line does not know anything about GRASS GIS and auto-completes only the things which it knows about, so programs on path (GRASS GIS modules are on path) and files. So, it should auto-complete GRASS GIS commands but will not complete their parameters or map names because it does not know anything about them.
For unix-like (Linux, Mac OS X, ...) command lines, you can in theory customize auto-complete and there was some work done on this topic. There was newer anything official, however you can search the grass-dev mailing list for projects on this topic.
Some people even developed also some GRASS-related features to Emacs and there might be similar things for other environments, although I haven't heard of them.
Some people are using the trick that they navigate to the directory with some files related to a map, e.g. yourlocation/yourmapset/vector
and then the auto-complete for maps might start to magically works because the command line auto-completes the files in the current directory which happens to be your maps. This works on Linux but it could work also on MS Windows.
Finally and perhaps most importantly, in the GRASS GIS GUI, there is a Command console which has different type of auto-completion (then system command lines) which is more close to what different IDEs (integrated [software] development environments) have. If you type, the suggestions will appear automatically and you can select from a list. You can also force auto-complete by pressing Ctrl+Space. This works for flags, options, map names and of course module names. If you press Tab, you will get a module synopsis, i.e. list of possible options and flags. This applies to the upcoming version GRASS GIS 7.
By the way, in Python interactive shell where you have GRASS accessible (e.g. the one in GRASS GIS GUI), you can use PyGRASS which, if imported in certain way, can auto-complete GRASS module names.