Repeated corruption is almost always an IO subsystem problem. Not necessarily the disks, could be anything in the IO path, controllers, cache, switches, fiber cable, disks, etc, etc.
You may also want to get out your backups from before the first corruption and restore them somewhere and see if you can figure out how much data you've lost due to running checkDB with repair_allow_data_loss multiple times (and you almost certainly have lost some)
Gail Shaw
Microsoft Certified Master: SQL Server, MVP, M.Sc (Comp Sci)
SQL In The Wild: Discussions on DB performance with occasional diversions into recoverability