Корректно ли брать деньги за изучение технологий, при почасовой оплате?
Если изначально требовался просто "php программист", а потом в процессе работы потребовалось изучить новый api, то абсолютно корректно, но в разумных пределах. Не нужно показывать заказчику, что вы слоупок)) Если требовался "пхп программист со знанием api платформы ЛАЛАЛА" и вы честно сказали, что вы пхп программист, но платформы не знаете, то тут как договоритесь. Если обещали бесплатно выучить, то учите бесплатно, если ничего не писали, то абсолютно корректно это подучить за чужой счет. Если ничего не обещали, то можно и забиллить. Тут обычно зависит от масштабов проекта. Если проект на день и вы еще день будете изучать технологию, то это как-то не очень. 
Например, мне, нанятому как программист java+bootstrap в процессе работы потребовалось изучить jasper reports и paypal api и я честно потратил на это пару дней(для проекта в 4 месяца это вполне себе ок). В заметках о работе так и писал, что изучаю это. Никто злого слова не сказал.
С другой стороны бывают случаи когда невероятно затупляешь и на часовую вещь тратишь на порядок больше времени. Тогда можно сделать скидку отменив несколько часов, например, или остановить таймер, чтобы это не давило.
Нет, не корректно. На месте закащика я бы не брал такого фрилансера.