It's probably because you have a lot of data in the table. If you haven't been cleaning the backup history and you have done a lot of backups since msdb was created that may be the source of the issue. I run a job once a week that runs this command to keep my backup history manageable:
DECLARE @dt DATETIME ;
SET @dt = DATEADD(day, -60, GETDATE())
EXEC dbo.sp_delete_backuphistory
@oldest_date = @dt ;
There are no special teachers of virtue, because virtue is taught by the whole community.
--Plato