O seu pensamento está correto Lucas. Vou te dar alguns exemplos pra ver se você compreende melhor.
O child utiliza um único Widget. Por exemplo, dentro de um widget container você irá colocar apenas UM widget texto.
child: Text('Exemplo de child');
Já o children você utiliza quando quer utilizar uma LISTA de widgets. Por exemplo, dentro de uma Column você colocaria vários textos.
children:[ Text('primeiro child') , Text('segundo child'), Text('ultimo child')];
Neste caso, quando você passa o children:[ ] você informa para o seu compilador que o tipo de entrava vai ser uma lista de widgets (vários filhos).
Ai a forma de declaração vai ser conforme o layout que você deseja criar. Os Widgets de layout de um filho e de muitos filhos estão detalhas nesta parte da documentação (https://flutter.dev/docs/development/ui/widgets/layout#Single-child%20layout%20widgets). Espero ter ajudado :)