How can I duplicate an object along a path?
You have a couple of problems.

The curve and the object have been rotated and scaled in object mode but the transformations have not been applied. (select the curve in object mode and press CtrlA to apply rotation and scale, then do the same for the dragon's fin)

Why apply transformations? Read the following link: Why is it important to apply transformation to an objects data?

The second issue is that the curve and the object you want to duplicate along it have their origins in different places. That will only give you headaches.

The origin for the curve and the replicated object must be in the same place.

Move the object so that it is in the exact same place as the curve. Select the curve, press Shift+S and select "Snap Cursor to Selected". Then select the Dragon's fin and press Shift+S again, but this time select "Snap Selection to Cursor".

Both objects are now in the same place and the array and curve should work the way you want.