こんなのでしょ。
だれか末尾再帰になおして。

(define (deriv f)
(define (loop f n)
(cond ((null? f) '())
((= n 0) (loop (cdr f) 1))
(else (cons (* (car f) n) (loop (cdr f) (+ n 1))))))
(loop f 0))

> (deriv '(1 2 3))
(2 6)