Сообщение об использовании должно идти в stdout, если пользователь вызвал его с помощью --help
и в stderr, если он допустил ошибку. Безусловная печать в stderr нежелательна, так как затрудняет просмотр сообщения с помощью пейджера/grep/etc.
Также, могу я предложить третий способ: открыть /dev/tty для отчетов о прогрессе/спиннеров/etc.