Acredito que cada uma dessas conveções possuam suas responsabilidades, claro que isso muda conforme o contexto do framework ou linguagem.
Logo abaixo deixo uma rapida explicação, que eu acredito ser a mais valida, retirada de uma pergunta no StackOverflow.
These terms can be synonymous with each other depending on context, which is why each framework or language creator is free to explicitly declare them as they see fit... think function/method/procedure or process/service, all pretty much the same thing but slight differences in different contexts.
Just going off formal English definitions:
Provider: a person or thing that provides something.