Oi Marcel a implementação pode até ter ficado parecido pra você mas o propósito dos padrões são diferentes um é estrutural e outro comportamental, além disso o Decorator trata de extensão de funcionalidades enquanto o chain define uma cadeia de objetos que tratam uma solicitação, o Decorator é transparente já o Chain o cliente não sabe quem vai atender a solicitação. No Decorator não necessariamente você vai chamar todas as classes envolvidas você pode compor os objetos em tempo de execução estendendo a funcionalidade deles, inclusive retirar uma regra anterior, já no chain onde você disse que não chamaria, você deve montar a cadeia interligando toda a cadeia você pode até mudar a ordem da cadeia mas não faz sentido ter uma responsabilidade que não vá participar da cadeia.
Espero ter ajudado e bons estudos.