Não são realmente conceitos equivalente, para além da descrição superficial de "estenderem um objeto".
Extensions em C# é uma feature de linguagem que funciona no nivel real de tipos, o compilador detecta que você fez algo como something.ExtensionMethod()
e transforma isso no equivalente funcional StaticClass.ExtensionMethod(something)
.
Em JS não existem tipos no sentido concreto da palavra, a linguagem tem o conceito de prototypes pra permitir o compartilhamento de comportamentos entre objetos com raízes em comum, mas não passa disso. Você pode inclusive fazer coisas assim:
const prot = { click() { console.log('clicked') } };
const something = {};
something.click(); // erro
something.__PROTO__ = prot;
something.click(); // 'clicked'
Então está muito mais próximo de uma ideia de "herança" em OOP do que do que seriam os extension methods. Em C# você pode usar o type system ao máximo do potencial dele com as extensions, inclusive pra fazer coisas completamente genéricas como:
public static void PrintTypeName<T>(this T self)
=> Console.WriteLine($"Type name is {typeof(T).Name}");
"something".PrintTypeName();