The Sacred Ash is typically found only once per game, and will often have some relation to Ho-Oh.
Generation II
In Pokémon Gold, Silver, and Crystal, the wild Ho-Oh that appears at the Tin Tower will be holding a Sacred Ash, as will any other Ho-Oh encountered in the wild through hacking.
Generation III
In Pokémon FireRed, LeafGreen, and Emerald, the Sacred Ash is found on Navel Rock, if the player uses the Itemfinder after capturing or defeating Ho-Oh; in Emerald, it is also held by the Ho-Oh itself. In Pokémon Ruby and Sapphire it has to be traded from the mentioned games.
Sacred Ashes can be found on the floor in Poké Balls in the Battle Pyramid; however, they cannot be kept.
By defeating Battle CD 46, the player can earn another Sacred Ash as a prize in Pokémon XD.
Generation IV
In Pokémon Diamond, Pearl, and Platinum, players can obtain it by having a Pokémon hold it in Generation III and sending it through Pal Park, or trading from Pokémon HeartGold and SoulSilver. Wild Ho-Oh, which can only be encountered with a cheating device, will always be holding this item.
In Pokémon HeartGold and SoulSilver, there are up to two Sacred Ashes in the game. The first is obtained by talking to the Professor's aide in the right gate on Route 2, while the second is held by the Ho-Oh at the top of the Bell Tower, just as it was in Generation II.
Generation V
Players can obtain Sacred Ash in Generation V by transferring it from Pokémon Dream Radar to Pokémon Black 2 and White 2. Boxes purchased in Join Avenue Antique Shops also have a chance of containing Sacred Ash.
Source