я думаю, потому что on распространено во всяких событийных API, тот же js с событиями onclick и так далее
но когда мы пишем код, который описывает не просто какие-то события типа взаимодействия пользователя с интерфейсом, а бизнес сценарии, то гораздо уместнее использовать when
, мне кажется