A anotação @Bean informa para o Spring que um AuthenticationManager deve ser instanciado e gerenciado pelo seu container. Assim quando é feito o @Autowired, a gente informa ao container do Spring que aquele bean deve ser injetado aqui.
É uma forma de inversão de controle por meio de injeção de dependência. Todo gerenciamento da dependência fica a cargo do container do Spring. Assim podemos definir as dependências por meio do Autowired sem ser necessário criá-las, o Spring faz isso pra gente.
Quando se usa o Autowired, ele procura por @Beans que possuem aquele determinado tipo, caso haja beans de mesmo tipo, pode-se usar o @Qualifier para distinguir entre um e outro.