The important thing to remember is that interrupts are function calls. So if an interrupt is triggered, some registers (at least the PC) are usually pushed on the stack and then the ISR is called. After the ISR is done, the PC is popped off the stack again and the program resumes.
This is not fast at all! Polling usually needs fewer cycles to react, so if you're waiting for that one pulse to set off a chain of events as quickly as possible, you'll most likely have to use polling. However, Interrupt efficiency is highly dependent on the MCU's architecture, so you'll really have to go through the datasheet and find out the interrupt performance penalty for yourself.
Interrupts allow for a nicer program flow, though. Polling can easily miss short events if it runs in a loop with actual processing instructions. Interrupts will just inerrupt the program flow, do their stuff and then return. So unless you really want to lock up your program to wait for a specific event, interrupts are much more suitable. Also, interrupts generated by peripherals usually only act on correct and consistent values; some microcontrollers have peripherals with several data registers which have to be read in a specific order to yield consistent data (ADCs come to mind), so if you can use an interrupt for this situation, I'd recommend you do (unless you really know what you're doing).
Polling will also waste power. With polling, the MCU is actively waiting for a signal. You can't enter any low-power modes. Depending on the microcontroller, most are happy servicing interrupts while the main CPU is in a low-power mode--do note, however, that handling interrupts while the CPU is in a low-power mode will take even more time because the CPU has to wake up first.
So, in short: Generally use interrupts, but remember that polling can be more suitable if you need to be extra fast.