buenas...
el atributo está mal escrito. debería ser como incialmente lo tenías, "onclick". setAttribute trabaja directamente con el elemento creando un atributo tal como lo harías en el código fuente. por tanto, "click" no es un atributo válido mientras que "onclick" lo es. aunque, puede ocurrir alguna excepción en algún navegador particular, pero estoy casi seguro que ya se debería a una mal implementación de parte del navegador. el problema inicial era que estabas asignando una expresión al método setAttribute.
por otro lado, no se que tan adecuado es asignar el evento mediante setAttribute. recuerdo que -por ejemplo- iexplorer no entendía este tipo de declaración. desconozco si las versiones actuales ya esta corregido. en lo personal, no utilizaría esa metodología -aunque es funcional- más que nada porque presenta algunas limitaciones respecto al uso de otras características del lenguaje. por ejemplo, no puedes implementar closure. mi propuesta es que utilices las propiedades javascript para declarar el evento. es decir,
element.onclick = function_name;.