Normally hooks do not need to be explicitly defined. However, by declaring a
hook explicitly, a module may define a "group" for it. Modules that implement
a hook may then place their implementation in either $module.module or in
$module.$group.inc. If the hook is located in $module.$group.inc, then that
file will be automatically loaded when needed.
In general, hooks that are rarely invoked and/or are very large should be
placed in a separate include file, while hooks that are very short or very
frequently called should be left in the main module file so that they are
always available.

Return value

An associative array whose keys are hook names and whose values are an
associative array containing:

group: A string defining the group to which the hook belongs. The module
system will determine whether a file with the name $module.$group.inc
exists, and automatically load it when required.

Note: This hook is for modules that define hooks, not for modules that implement them. For example you cannot create your own hook_hook_info to put your token hooks into your own group file, like the example shows. That tokens group is defined by the system module, and if you override it with your own hook_hook_info implementation, you will break stuff.