Você precisa colocar o asterisco na outra extremidade da string. O asterisco fica para "o que for", então
${string%$searchstring*}
significa "remove from string everyting da cadeia de pesquisa em diante".
Isso está documentado em man bash
em "Expansão de Parâmetros".