High Power LED Strobe making a Whining Noise when powered by a PWM signal
That LED has a constant current source inside of it.  That is why it is rated for 9-32 Volts.

It is probably the current limiting circuitry that is making noise.

PWM makes pulses.  

When you controlled the brightness with the potentiometer and the MOSFet, you could lower the voltage to below the limits that the regulator in the light could handle - it would get dimmer.  That would be in the range from 0 to 9Volts.  Above 9Volts, the brightness should pretty much remain stable - if the notes on the web site are to be trusted.

Using the PWM signal from the Arduino is turning the power to the light on and off completely.  This is often done to dim LEDs.  By using a fast pulse rate with very short on time, the LED is only lit for a very short time and appears dimmer - but it is still being driven with its full voltage and current.

I don't know what that unit has for a regulator, but it seems to have at least one inductor or maybe a capacitor.  These can whine when driven with a pulsed signal.

The short of it is that it probably won't hurt the LEDs but may destroy the current regulator.



That thing also seems to have been produced by some El Cheapo chinese manufacturer, so no guarantees that it will live long anyway.



I don't think you can (easily) fix the whining.  That light isn't made to be dimmed.  It is made to provide a constant light output over a wide range of input voltages. The regulator in the light isn't made to run on voltages under 9V, and it isn't made to be pulsed.