This is not a bug, this is a wart inherited from C.
(There are few of them, but they exist nevertheless.)
The reason is that arrays indexes are 0-based, both
in C and in Perl, and it was thought that the main use
of the month as a number was to index an array of
strings. But more often than not, the month as a number
is used as a number like "2001-12-21" or "21/12/2001"
(or "12/21/2001" in the US).
Fortunately, with Perl 6, hopefully, we get rid of this
hideous wart, as well as the Y19.1K pseudo-bug.
See http://dev.perl.org/rfc/48.html.