### Summary

The documentation about how systems determine the default shell is confusing.

At the [shell parameter](https://docs.ansible.com/ansible/latest/collections/ansible/builtin/user_module.html#parameter-shell) is written: "See notes for details on how other operating systems determine the default shell by the underlying tool."

The [Notes section](https://docs.ansible.com/ansible/latest/collections/ansible/builtin/user_module.html#notes) does not contain "details on how other operating systems determine the default shell".

If I read this, I would expect to find something along the lines of "On FreeBSD, the default shell is set by `dscl`". 

Instead, it contains notes on which underlying tools are used by the module to create, modify and remove accounts. This is only helpful if the reader is already aware of the fact that these underlying tools _also_ set the default shell.

Furthermore, since the notes at the shell parameter explicitly spell out what the default shell on macOS is, the user has a reasonable expectation to find similarly worded notes for other operating systems in the Notes.

A possible solution: replace "See notes for details on how other operating systems determine the default shell by the underlying tool." with "On other operating systems, the default shell is determined by the underlying tool invoked by this module. See Notes for a per platform list of invoked tools."

### Issue Type

Documentation Report

### Component Name

lib/ansible/modules/user.py

### Ansible Version

```console
N/a
```


### Configuration

```console
N/a
```


### OS / Environment

N/a

### Additional Information

Previous bug report and attempted (but IMO inadequate) fix here: https://github.com/ansible/ansible/issues/59796. 

### Code of Conduct

- [X] I agree to follow the Ansible Code of Conduct
type: float
        version_added: "1.9"
    password_lock:
        description:
            - Lock the password (C(usermod -L), C(usermod -U), C(pw lock)).
            - Implementation differs by platform. This option does not always mean the user cannot login using other methods.
            - This option does not disable the user, only lock the password.
            - This must be set to V(False) in order to unlock a currently locked password. The absence of this parameter will not unlock a password.
            - Currently supported on Linux, FreeBSD, DragonFlyBSD, NetBSD, OpenBSD.
        type: bool
        version_added: "2.6"
    local:
        description:
            - Forces the use of "local" command alternatives on platforms that implement it.
            - This is useful in environments that use centralized authentication when you want to manipulate the local users
              (in other words, it uses C(luseradd) instead of C(useradd)).
            - This will check C(/etc/passwd) for an existing account before invoking commands. If the local account database
              exists somewhere other than C(/etc/passwd), this setting will not work properly.
            - This requires that the above commands as well as C(/etc/passwd) must exist on the target host, otherwise it will be a fatal error.
        type: bool
        default: no
        version_added: "2.4"
    profile:
        description:
            - Sets the profile of the user.
            - Can set multiple profiles using comma separation.
            - To delete all the profiles, use O(profile='').
            - Currently supported on Illumos/Solaris. Does nothing when used with other platforms.
        type: str
        version_added: "2.8"